Cómo poner un buscador ht://dig

Jueves 5 de febrero de 2004. Ayuda para poner un buscador en los sitios web de Sindominio

 Ayuda para poner un buscador ht://dig en los sitios web de Sindominio

  1. Introducción
  2. Archivos importantes
  3. El archivo de configuración
  4. Las plantillas de resultados de búsqueda
  5. Los formularios de búsqueda
  6. Conclusión

 1.- Introducción

Para poder realizar búsquedas de palabras en SinDominio (en cualquiera de las páginas que aloja) tenemos instalado ht://dig. Se trata de un programa que indexa y permite realizar búsquedas en sitios web, pensado para las necesidades de pequeños servidores e intranets. Es además una herramienta libre, publicada bajo la GNU GENERAL PUBLIC LICENSE. Permite realizar búsquedas complejas, utilizando expresiones booleanas, y los resultados de las búsquedas pueden ser adaptados a las necesidades de cualquier sitio web. La página web donde puedes encontrar más información sobre este programa es http://www.htdig.org/ (en inglés).

Para realizar su trabajo, ht://dig primero visita todas las páginas de SinDominio siguiendo los enlaces que en ellas existen. Cada página visitada es examinada y todas las palabras mayores de 3 letras son guardadas en una base de datos junto con el enlace a la página donde estaban. De esta forma cuando realizamos la búsqueda a través de un formulario, el programa nos devuelve en qué páginas se encuentran las palabras que buscamos.

Con este texto pretendemos darte una ayuda para que puedas utilizar el ht://dig que tenemos instalado, como motor de búsqueda para vuestro sitio web (que estará alojado dentro de SinDominio, claro :-)). Si lo deseas podrás conseguir además que las páginas de resultados sean iguales al resto de vuestra web y quizás alguna cosa más. Para que te sea más sencillo puedes utilizar como plantilla las páginas de resultados que vienen en este archivo comprimido (17 kb) y que hemos traducido al castellano para SinDominio.

Lo que aquí se explica está dirigido para páginas web estáticas (las de html normaluchas, si no sabes muy bien que significa no te preocupes, estas son las tuyas :-)). Si estas utilizando php, SSI u alguna otra mandanga, tendrás que adaptar esta ayuda a tu caso, aunque supongo que no tendrás mucho problema para hacerlo ya que pareces todo un ``gurú'' :-P (cuéntame como te ha ido: fundamento@sindominio.net). Lo que aquí no se explica es como se instala y configura ht://dig en un servidor web (buff!).

[Volver al índice]

 2.- Archivos importantes

Para poder adaptar ht://dig a las necesidades de un sitio web cualquiera de los de SinDominio, hay que saber que existen tres tipos de archivos importantes de ht://dig que tenemos que personalizar. He puesto en el archivo zip ejemplos de los que usamos en SinDominio que te pueden valer para, con pequeños cambios, poner un buscador "en tu vida" (tienes también ahí una copia de este texto). Los tres tipos de archivos son:

[Volver al índice]

 3.- El archivo de configuración

Como hemos dicho, este archivo le dirá a ht://dig cuales son las plantillas que tiene que utilizar para devolver los resultados de la búsqueda.

La primera cuestión a saber es que este archivo tiene que tener obligatoriamente la extensión `.conf'. Esto es porque en el formulario de búsqueda diremos a ht://dig que utilice el archivo de configuración `tusitio' y este buscará algo que se llame igual y acabe en `.conf'. Por eso proponemos que lo llaméis igual que se llama vuestro sitio (de ahí lo de `tusitio.conf'), de esta forma es más fácil saber a quien corresponde cada uno.

Ademas, es también importante saber que estos archivos se guardan todos en el mismo sitio (el directorio /etc/htdig/). Como veis no es un lugar al que pueda acceder cualquiera, no se encuentran en uno de los directorios de vuestra web (:-/), por lo que tendréis que pedir a alguien que os lo guarde allí (escribid al grupo de administración adjuntando el archivo y pidiendo que lo guarden allí).

La parte principal (que tendremos que modificar) de este archivo tiene la siguiente pinta:

# Plantillas de resultados de búsqueda:<br /><br />

 # Cabecera de la página de resultados positivos: <br />
 search_results_header: /home/TUSITIO/public_html/htdig/header.html<br /><br />

 
 # Pie de la página de resultados positivos:<br />
 search_results_footer: /home/TUSITIO/public_html/htdig/footer.html <br /><br
/>

 # Página de "no se ha encontrado nada": <br />
 nothing_found_file: /home/TUSITIO/public_html/htdig/nomatch.html <br /><br />

 # Página de "error de sintaxis en búsquedas lógicas": <br />
 syntax_error_file: /home/TUSITIO/public_html/htdig/syntax.html

El resto del archivo es necesario mantenerlo ``talcual'' para que siga cumpliendo sus funciones. Los datos que están puestos son los correctos para los ``hispanohablantes'' y si quieres meterte a cambiarlos, tienes comentarios (las lineas que empiezan por # y que el programa no ejecuta) que te ayudan a saber de que van.

En la parte del archivo de configuración que hay que personalizar le decimos a ht://dig donde están las plantillas de resultados. Como ves el path (camino de directorios) que está puesto apunta al directorio de documentos públicos de internet (public_html) de un ``usuario'' cualquiera de SinDominio. Lo único que tienes que hacer es poner el nombre de usuario que tienes para tus páginas web donde pone ``TUSITIO'' (por ejemplo nuestro correo es `fundamento@sindominio.net', y por tanto nuestro nombre de usuario es `fundamento', lo pillas :-)).

Esos path llevan a un directorio de tu sitio web que he llamado htdig. Esto puedes dejarlo así y crearte un directorio con ese nombre, o poner otro. Finalmente están los nombres de los archivos de las cuatro plantillas de resultados. Los nombres que he puesto son los originales que usa ht://dig, pero puedes cambiarlos si quieres. Para ello acuérdate de poner en este archivo de configuración y en fanelli el mismo nombre de archivos, eh! :-).

[Volver al índice]

 4.- Las plantillas de resultados de búsqueda

Como podéis ver en el cuadro de arriba, las plantillas de resultados de la búsqueda son simples ficheros de página web (.html) que has de poner en un directorio determinado de tu sitio web. De esta manera, si el archivo de configuración arriba explicado está correctamente escrito, cada vez que realices una búsqueda, los resultados aparecerán en estas plantillas.

De esta forma, puedes conseguir que los resultados de las búsquedas aparezcan en un formato similar o incluso igual al resto de páginas de vuestro sitio. Para conseguirlo, aquí tenéis una pequeña explicación de para qué sirve cada archivo y como os lo podéis montar para personalizarlo. La idea principal es que utilicéis el formato de vuestras páginas web como plantillas para estos archivos y a ello le añadáis el código necesario.

En el código de todas las páginas web del archivo zip de ejemplos hay dos comentarios:

&lt;!-- PON ESTO EN ZONA DE TEXTO DE TU PAGINA --&gt; y
&lt;!-- ACABA ZONA DE TEXTO --&gt;
. El texto que está entre ambos comentarios es el que debéis poner en la zona que está destinada al texto en vuestras páginas web. Por supuesto, podéis modificar la disposición y lo que queráis, pero no es necesario que lo hagáis.

Finalmente contaros un truco. Resulta que cuando se presenta el resultado de búsquedas, la dirección de la página web que aparece en el buscador no tiene nada que ver con ninguna de nuestro sitio web. De esta manera, todos los enlaces que hayamos puesto nosotr@s (no los que pone ht://dig) serán inválidos, así como las direcciones a las imágenes que tengamos se habrán perdido y la página aparecerá sin ninguna imagen (haced la prueba, ya veréis que decepción :-/).

Para arreglarlo lo más sencillo es utilizar la etiqueta de html

&lt;base
href=...&gt;
. Con esta etiqueta le decimos a todos los enlaces relativos de la página, que utilicen como base la dirección de esta etiqueta. Así por ejemplo, en vuestro caso podríais utilizar una dirección del tipo
&lt;base
href="http://www.sindominio.net/TUSITIO/htdig/"&gt;
. De esta manera os aseguráis que si visitando directamente estas páginas (header.html, etc) los enlaces y las imágenes se ven bien, cuando las utilice ht://dig también lo estarán.

4.1.- Página de resultados positivos

Esta página está compuesta en realidad por dos archivos, el header.html que es la cabecera (parte superior) de la página web, y el footer.html que es el pie de página (parte inferior). O sea, que para presentar los resultados, ht://dig primero presenta el header, después en medio los resultados de búsqueda, y finalmente el footer. Existe otra manera de hacerlo con un solo archivo, a través del wrapper.html, pero yo no la he probado.

De esta manera, para construir la página de resultados deberías coger una página web típica de tu sitio y dividirla en dos partes:

Si os fijáis en el código de todas estas páginas que tenéis de ejemplo en el zip, podréis ver que aparecen incluidos etiquetas raras como $&amp;(WORDS), o $(FIRSTDISPLAYED). Se trata de las variables que utiliza ht://dig para insertar cosas como la(s) palabra(s) que has buscado, u otras. Es mejor, por tanto, no tocarlo mucho. En el caso de header.html, el código siguiente:

&lt;strong&gt;Documentos $(FIRSTDISPLAYED) a $(LASTDISPLAYED) de $(MATCHES)
encontrados.
M&amp;aacute;s &lt;img src="/htdig/star.gif" alt="*"&gt; indican mayor
equivalencia con la palabra buscada.

&lt;/strong&gt;

se utiliza para presentar el encabezado de los resultados, donde se dicen que se han encontrado tantas páginas y que se presentan de la página tal a la cual :-).

En footer.html aparece también una tabla de html (&lt;table&gt;) con un formulario (que empieza con

&lt;form method="post"
action="$(CGI)"&gt;
). Se trata de una copia adaptada de la versión avanzada del formulario de búsquedas que utilizaremos en la página de búsquedas (que se explica más adelante).

4.2.- Página de ``no se ha encontrado nada''

La página que utiliza ht://dig para decirnos que no ha encontrado nada es nomatch.html. Si os fijáis en la página que tenéis de ejemplo, se trata de una única página web normal. Por tanto, podéis utilizar como plantilla una página tipo de vuestro sitio, incluyendo el código incluido entre los comentarios citados, para que funcione.

4.3.- Página de ``error de sintaxis en búsquedas lógicas''

Al igual que la anterior, se trata también de una sola página, llamada syntax.html (acordaos de que podéis cambiarle de nombre, pero para ello también hay que hacer el cambio en ``tusitio.conf''). De esta manera, también es suficiente con pegar el código situado entre los comentarios en la zona de texto de vuestras páginas web.

[Volver al índice]

 5.- Los formularios de búsqueda

En el archivo zip de los ejemplos tienes un archivo de página web denominado search.html. En ella están dos ejemplos de formularios de búsqueda, uno sencillo y otro para las búsquedas avanzadas. Como seguramente ya conoceréis, los formularios en páginas web son todos aquellos grupos de controles a través de los cuales se puede enviar información para realizar una serie de tareas, en este caso realizar búsquedas de palabras.

Para indicar que una parte del código de la página web es un formulario, el código va precedido de una etiqueta &lt;form&gt; y se cierra con una &lt;/form&gt;. De todas formas, para haceros todavía más fácil la ``pesca'' de la parte importante del código, he encerrado la parte del formulario entre comentarios del tipo

&lt;!-- PON ESTO PARA UN FORMULARIO
SIMPLE --&gt;
y &lt;!-- FIN FORMULARIO SIMPLE --&gt; (lo mismo para el formulario avanzado). Por lo tanto, para poner formularios de búsqueda en vuestra web, tan solo necesitáis copiar esas partes de código en cualquier lugar de vuestras páginas.

Ahora bien, no vale con copiar el código tal cual. Es necesario darle las instrucciones para que solo devuelva páginas de vuestro sitio web y para que utilice el archivo de configuración ``TUSITIO.conf'' Para ello están dos campos hidden (ocultos) en el formulario, el llamado config y el restrict. El campo llamado exclude tendría como función excluir de los resultados determinados directorios de tu sitio, si así lo necesitas. Yo en principio no le he encontrado utilidad para nuestro sitio, pero tú veras :-).

Por si no ha quedado claro os pondré un ejemplo similar al que he puesto anteriormente. Como ya sabréis Fundamento Orain Taldea tiene página web en http://www.sindominio.net/fundament o/. Entonces para este caso estos dos campos quedan tal que así:

&lt;input type="hidden" name="restrict" value="fundamento"&gt; porque el directorio al que quiero restringir las búsquedas es el de fundamento que aparece en la dirección web de nuestras páginas.

&lt;input type="hidden" name="config" value="fundamento"&gt; porque el archivo de configuración lo he llamado fundamento.conf. De haber utilizado otro nombre, aquí iría el nombre del archivo sin la extensión.

Aparte de estos controles importantes, en los formularios aparece el enlace al lugar donde tenemos el programa ht://dig (...action="http://www.sindominio.net/cgi-bin/htsearch"), que por supuesto debes dejar así para que se realicen búsquedas. También esta la caja de texto donde se introducen las palabras a buscar, indicada con la etiqueta &lt;input type="text"...&gt; y el botón de buscar

&lt;input
type="submit" value="Busca!"&gt;
. En el formulario de búsquedas avanzadas, además de lo anterior existen toda una serie de controles para poder restringir la búsqueda a determinadas fechas de modificación de los archivos, ordenar los resultados, presentar diferente número de resultados, etc. No es necesario que toques nada de esto si no quieres, seguro que funcionará perfectamente.

[Volver al índice]

 6.- Conclusión

Creo que con esto puede ser suficiente para guiaros tras los pasos del ``apasionante mundo de ht://dig en tu sitio web''. De todas formas, si tenéis alguna duda o siguiendo estos pasos algo no os funciona, no dudéis en escribirme a fundamento@sindominio.net y trataré de echaros una mano. Pero al loro, que si el tema se sale mucho de lo que aquí se explica, no esperéis mucho más de mí, que todo lo que sé es por pura experimentación con esta herramienta.

También se aceptan mejoras, criticas, arreglos, etc, etc, al texto. El tema ese de la licencia GPL, ya sabéis. Ah, y si alguien quiere ver en acción a ht://dig totalmente personalizado para una página web en concreto, podéis hacer una búsqueda desde la home de nuestra página web en http://www.sindominio.net/fundament o/ (no lo intentéis desde las demás, que todavía no he modificado el código y os mandará a otro buscador diferente :-/). Tenéis también un formulario de búsqueda avanzada personalizado en http://www.sindomi nio.net/fundamento/htdig/search.html.

Pues nada, ``eso es todo amigos'' :-D. Saludos y suerte en vuestra constante búsqueda. Martintxo.