Día 29: Hacer que todo pueda buscarse

Todo sitio de Internet necesita un buscador interno. Punto.

Reglas para un buen buscador de sitio:

  1. Ponga la barra de búsqueda en cada página, preferiblemente visible al entrar a la página.
  2. Busque en todo su contenido por defecto. Si tiene una opción para buscar entradas, comentarios, o ambos, haga que "ambos" sea la opción por defecto.
  3. No abarrote su barra de búsqueda con opciones avanzadas, como lógica booleana, sensitividad a mayúsculas, o expresiones regulares. Elija opciones por defecto que imiten la conducta de Google (todas las palabras, no igualar palabras parciales, no igualar mayúsculas o minúsculas, no usar expresiones regulares) y ponga todas estas opciones visibles en una página separada de búsqueda avanzada.
  4. Otorgue a su barra de búsqueda una etiqueta apropiada y una tecla de acceso. Recomiendo usar accesskey="4". (Nota: El día 15, ofrecí un ejemplo de cómo asignar una tecla de acceso (accesskey) a su formulario de búsqueda, y me equivoqué. Para compatibilidad máxima entre navegadores, necesita definir la tecla de acceso en la etiqueta <label>, no en la etiqueta <input>. Vea los ejemplos siguientes para corregir la sintaxis).

Quién se beneficia?

Jackie, Michael, Bill, Lillian, Marcus, y casi todo el mundo se benefician de una búsqueda en su sitio correctamente implementada. Especialmente en un registro de apuntes o en un sitio orientado a noticias, donde el contenido es organizado principalmente de manera cronológica, es muy frustrante tratar de encontrar una publicación especifica que no se encuentra en la página principal. Muy pocas personas saben acerca de la sintaxis "site:domainname.com" en Google (para restringir los resultados de búsqueda a un dominio en particular, y Google reclasifica solo una vez al mes. Provea su propia búsqueda de sitio.

Como hacerlo

Greymatter tiene funcionalidad de búsqueda incluida, pero necesita personalizar la plantilla ligeramente para proveer una tecla de acceso para la barra de búsqueda. Vaya a "Edit Templates", "Miscellaneous Templates", "Search Form Template", y encuentre un formulario como este:

<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<INPUT TYPE=TEXT NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>

Y cámbielo a esto:

<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<label for="gmsearch" accesskey="4">Search for:</label>
<INPUT TYPE=TEXT id="gmsearch" NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>

Los usuarios de Movable Type pueden probar la extensión MT-Search. Voy a usar esta extensión en un sitio próximo que usará Movable Type. Lo probé en mí registro de apuntes principal (que contiene más de 900) y fue bastante lento, pero parece funcionar bien en sitios más pequeños. Ya no está siendo desarrollado activamente, pero funciona bien, hasta en la última versión de Movable Type (Nota: si está usando la versión MySQL de Movable Type 2.2, necesita modificar ligeramente mt-search.cgi).

Si tiene un registro de apuntes con su propio nombre de dominio, tiene que usar un servicio de búsqueda de terceros que clasifique su contenido y provea resultados de búsqueda al pedido. Alternativas populares de este tipo incluyen Atomz Express Search, que es el que recomienda Blogger.com, y Google Free Web Search, el que uso en mi propio registro de apuntes. Ambos permiten cambiar el aspecto de su barra de búsqueda: mí formulario de búsqueda de Google se ve así (note el uso de las etiquetas <label> y accesskey):

<form id="searchform" method="get" action="http://www.google.com/custom">
<p id="searchlabel"><label for="q" accesskey="4">Search this site:</label></p>
<p id="searchinput"><input type="text" id="q" name="q" size="18" maxlength="255" value=" " /></p>
<p id="searchsubmit"><input type="submit" value="Search" />
<input type="hidden" name="cof" value="LW:116;L:http://diveintomark.org/images/eyes.jpg;LH:68;AH:left;GL:0;S:http://diveintomark.org/;AWFID:0d8ffcebe359c844;" />
<input type="hidden" name="domains" value="diveintomark.org" />
<input type="hidden" name="sitesearch" value="diveintomark.org" />
</p>
</form>

Nota: no puede copiar y pegar esto en su propio registro de apuntes. Si quiere usar su propia Búsqueda Gratis de Google, necesitará registrarse y obtener su propio código que va en el campo invisible cof.

Lectura añadida