Crear un motor de búsqueda basado en OpenSearch


Por cuestiones laborales me entro la necesidad de aprender a poner accesible la tienda virtual que gestiono a OpenSearch.

La verdad es que me ha resultado increíblemente fácil la adaptación. Afortunadamente, la web de Mozilla está realmente bien documentada.

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>Csearch</ShortName>
  <Description>Busque en todos los artículos de Vistalegre.com. En nuestra tienda encontrará material de oficina, mobiliario, papeleria, audiovisuales e informática. Empresa homologada por la Junta de Andalucía</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16">data:image/x-icon,%00%00%01%00%01%00%10%10%00%00%00%00%00%00h%05%00%00%16%00%00%00(%00%00%00%10%00%00%00%20%00%00%00%01%00%08%00%00%00%00%00%40%01%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%FF%FF%FF%00v-%D6%00%B6%9F%E2%00%D7%D8%EB%00%9Ek%E1%00%5B%02%CD%00%87M%D8%00%C7%BC%E7%00%AC%82%E6%00%E3%ED%ED%00j%1A%D2%00%7F%3D%D7%00%92X%DE%00%A0y%DE%00b%0F%D0%00%DD%E3%EC%00%AB%8C%E0%00p%24%D4%00%BC%A8%E4%00%A5%81%DF%00z5%D7%00%82E%D7%00%A6x%E4%00%D3%D1%E9%00%C3%B5%E6%00%8CV%D9%00%A3s%E3%00%AF%87%E6%00%DB%DE%EB%00s*%D3%00%B9%A4%E3%00%A9~%E5%00%E0%E7%EC%00m!%D2%00w3%D4%00%5D%06%CE%00%7B9%D5%00%85I%D7%00%8FU%DD%00l%1D%D2%00%E1%EA%ED%00%9Fn%E2%00%9Fv%DD%00d%11%D0%00a%0D%CF%00%A4w%E3%00%DC%E0%EB%00%C8%BE%E7%00%8CX%D9%00%5C%03%CE%00%91W%DD%00%A4%80%DE%00%E2%EB%ED%00%DF%E6%EC%00%5C%05%CE%00%DC%DF%EC%00%86L%D8%00%AA%7F%E5%00%9Em%E2%00%A0x%DD%00%E3%EC%ED%00%5B%02%CE%00%5C%02%CD%00%5C%02%CE%00%5B%03%CD%00%5C%03%CD%00%AC%8C%E0%00%86M%D8%00%AA~%E5%00%A6y%E4%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%0A%0A%0A%0A%0A%0A%0A5%1F%16%1A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%1D%26229%3D%0A%0A%0A%0A%0A%0A%0A%0A%0A6%25%0622D%3D%0A%0A%0A%0A%0A%0A%0A%0A%0A%3C%3F222D%3D%0A%0A%0A%0A%0A%0A%0A%0A%10%2C%06222D%3D%0A%0A%0A%0A%0A%0A%0A%0A%13%3F%06222D%3D%0A%0A%0A%0A%0A%0A%0A%0A%14%3E2222D%3D%0A%0A%0A%0A%0A%0A%0A%0A%0E%3E2222D%3D%0A%0A%0A%0A%0A%0A%0A%0A%11%3E2%06%062D%3D%0A%0A%0A%0A%0A%0A%0A%0A%08BB(A%06%07%3D%0A%0A%0A%0A%0A%0A%3D%3D0%247E%15%24%23!%0A%0A%0A%0A%0A%0A%0A)%0C%1C%09%02%3B%1B*4%0A%0A%0A%0A%0A%0A%0A%2F%0D%12%0F%05F%40%171%0A%0A%0A%0A%0A%0A%0A%3D%07%20%3A%0B'.3%03%0A%0A%0A%0A%0A%0A%0A%0A%182-%1E%222%16%3D%0A%0A%0A%0A%0A%0A%0A%0A8%2B%04%3D%3D%19C%3D%0A%0A%0A%0A%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00</Image>
  <Url type="text/html" method="get" template="http://servicios.vistalegre.com/pruebas/">
    <Param name="s" value="{searchTerms}"/>
  </Url>
  <moz:SearchForm>http://www.vistalegre.com/</moz:SearchForm>
</OpenSearchDescription>

Los campos configurables son bastantes descriptivos por sus nombre:

  • ShortName: Nombre corto para el motor de búsqueda.
  • Description: Descripción del motor de búsqueda.
  • InputEncoding: Codificación de caracteres a emplear en los datos que se envían al motor de búsqueda. Por ejemplo, “UTF-8″.
  • Image: Icono de 16×16 codificado en Base-64 que represente al motor de búsqueda. Puedes encontrar una utilidad para generar estos datos en: The data: URI kitchen.
  • Url: Describe la(s) URL(s) a emplear para la búsqueda. El atributo method indica si se debe emplear una petición GET o POST para obtener los resultados.

OJO: Internet Explorer 7 no admite peticiones POST.

Firefox admite dos tipos de URL en el campo type:

  • type=”text/html” se usa al especificar la URL a donde se va a enviar la petición de búsqueda.
  • type=”application/x-suggestions+json” se usa al especificar la URL de donde se van a obtener las sugerencias de búsqueda.

Ahora, tendremos que poner disponible nuestra búsqueda para que sea añadido a los navegadores. Se puede hacer de dos forma:

  1. Incrustando el siguiente enlace en la web tal que así:
     <link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">

    Donde:

    searchTitle
    El título de la búsqueda que se va a llevar a cabo; por ejemplo, “Buscar en MDC” o “Búsqueda en Google”. Este valor debe coincidir con el ShortName de nuestro complemento.
    pluginURL
    La URL que debe emplear el navegador para descargar el fichero XML con la descripción del complemento.

  2. Otra posibilidad es poner un enlace HTML puro y duro:

         Instalar
       

Fuentes:

Sentidoweb
Artux
La bitácora del tigre

Leave a comment

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>