I’ve long been a fan of OpenSearch, the XML format that allows you to add custom search engines to many browsers. Although most users are unaware that they can change the default search in Firefox, Chrome1, Opera, and even Internet Explorer, I still find these tools useful, especially for power users. I created a few OpenSearch plugins for our heaviest users (subject librarians and desk staff) that search both Summon and our library’s catalog.

I thought that other libraries might be interested in creating their own search plugins for Summon and Millennium2. I’ll walk you through creating the files, adding autodiscovery to your website, and creating an installation link. It shouldn’t take more than 10 minutes.

OpenSearch for Summon

In your favorite text editor, open the template below:

<?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz= "http://www.mozilla.org/2006/browser/search/ ">
        <ShortName>LIBRARY NAME</ShortName>
        <Description>Search library holdings with Summon</Description>
        <InputEncoding>UTF-8</InputEncoding>
        <Image width="16" height="16" type="image/x-icon">PATH/TO/favicon.ico</Image>
        <Url type="text/html" method="GET" template="http://YOURLIBNAME .summon.serialssolutions.com/search?s.q={searchTerms}"></Url>
        <Url type="application/opensearchdescription+xml" rel="self" template="PATH/TO/OPENSEARCH.xml" />
        <moz:SearchForm>http://YOURLIBNAME .summon.serialssolutions.com</moz:SearchForm>
    </OpenSearchDescription>
  1. Replace LIBRARY NAME with a short name you’d like to see in the browser’s dropdown menu. I used “GVSU Libraries” for our Summon search.
  2. Change YOURLIBNAME to the Summon URL prefix for your library. Our Summon URL is http://gvsu.summon.serialssolutions.com, so we put “gvsu” in place of YOURLIBNAME.
  3. Create a little icon, called a “favicon,” for your plugin. (Your University probably already has one. Check with your Web team. Here is GVSU’s favicon.) You can convert any image to a favicon with a simple online tool. Upload your favicon to your server and replace PATH/TO/favicon.ico with the URL of this file.
  4. Decide where you want to host this plugin and what you’ll name it. Enter the URL and file name in place of PATH/TO/OPENSEARCH.xml.
  5. Finally, save your file with the name you chose in step 4 and upload it to your server.

OpenSearch for Millennium ILS

In your favorite text editor, open the template below.

<?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz= "http://www.mozilla.org/2006/browser/search/">
        <ShortName>LIBRARY NAME Catalog</ShortName>
        <Description>Search the library Catalog</Description>
        <InputEncoding>UTF-8</InputEncoding>
        <Image width="16" height="16" type="image/x-icon">PATH/TO/favicon.ico</Image>
        <Url type="text/html" method="POST" template="PATH/TO/CATALOG/search">
            <Param name="searchtype" value="X"/>
            <Param name="searcharg" value="{searchTerms}"/>
        </Url>
        <Url type="application/opensearchdescription+xml" rel="self" template="PATH/TO/OPENSEARCH.xml" />
        <moz:SearchForm>PATH/TO/CATALOG</moz:SearchForm>
    </OpenSearchDescription>

The catalog OpenSearch XML is a bit more complicated than the Summon script because Millennium uses a different HTTP Request method than Summon3. For this reason, you cannot use the OpenSearch Millennium plugin in Internet Explorer.

  1. Replace LIBRARY NAME with a short name you’d like to see in the browser’s dropdown menu. We called ours “GVSU Library Catalog.”
  2. Replace PATH/TO/CATALOG with the URL of your Millennium installation. Our catalog is at https://library.catalog.gvsu.edu, so we’d put this in place of PATH/TO/CATALOG. Note: Make sure you leave the “/search” at the end of the path in the tag. The search will not work without it.
  3. Use the URL of the favicon you created in the first step in place of PATH/TO/favicon.ico.
  4. Remember to choose a different name than your Summon plugin, and use this filename and the path you used for your Summon plugin to replace /PATH/TO/OPENSEARCH.xml.
  5. Upload the file to your server.

Installation and Autodiscovery

Adding these lines to the of your website will tell browsers OpenSearch plugins are available:

<link rel="search" type="application/opensearchdescription+xml" title="LIBRARY NAME Summon Search" href="PATH/TO/SUMMON/FILE .xml">
<link rel="search" type="application/opensearchdescription+xml" title="LIBRARY NAME Catalog Search" href="PATH/TO/CATALOG/FILE .xml">
  1. Replace LIBRARY NAME with your library’s name.
  2. Change PATH/TO/CATALOG/FILE.xml and PATH/TO/SUMMON/FILE.xml to the URL of the appropriate plugin.

Our link for Summon looks like this:

<link rel="search" type="application/opensearchdescription+xml" title="GVSU Libraries Summon Search" href= "http://gvsulib.com/labs/search/gvsusummon.xml"><br /></code>

Use Javascript to create an installation link. Add the following script to your on your page:

<script type="text/javascript">
  <!--
    function installSearchEngine(engineURL) {
      if (window.external && ("AddSearchProvider" in window.external)) {
        // Firefox 2 and IE 7, OpenSearch. Note: Catalog search won't work with IE
        window.external.AddSearchProvider(engineURL);
      } else {
        // No search engine support (IE 6, Opera, Safari, etc.)
        alert("This browser does not support adding search engines. Try Firefox!");
      }
    }
  // -->
</script> 

When creating the installation link, pass the URL of the OpenSearch plugin to this script and it checks to make sure that the browser supports OpenSearch plugins before installing. Here’s our Summon plugin link:

<a href="javascript:installSearchEngine( 'http://gvsulib.com/labs/search/gvsusummon.xml' )" title="Install Summon Search in your browser">Install Summon Search</a><br /></code>

That’s it. Now your users can search Summon or your catalog right from their browser search bars. At GVSU, we are building these plugins into our lab computer image, but I suspect that only power users will use them (or be aware of them).

Download the templates ZIP


  1. Chrome allows you to install OpenSearch plugins, but they aren’t as intuitive as Firefox or Internet Explorer. We’ve created a short tutorial video that explains how to use these plugins in Chrome.
  2. Unlike the LibX toolbar, these search plugins are unobtrusive and simple. LibX looks like the spam toolbars that get installed whenever your 11-year-old niece uses your computer to watch Hannah Montana videos.
  3. Summon uses GET, which passes the search query along in the URL string, while Millennium uses POST, which passes data in the body of the request. Internet Explorer does not support POST through OpenSearch because Bill Gates hates the internet. I have no idea why Innovative Interfaces, Inc. (the creators of Millennium) uses POST for catalog searches, other than keeping true to their core mission of making their products cumbersome and nearly unusable.