La Web del Programador: Comunidad de Programadores
 
    Pregunta:  290 - CONSTRUIR UN BUSCADOR
Autor:  Sergio
Quisiera información acerca de como funcionan internamente los buscadores. Las busquedas que hacen deben de ser por contenido (una o varias palabras clave, y como resultado aparecen las paginas que las contienen). La implementacion de estas busquedas no puede ser secuencial (buscar las palabras repetidamente en cada una de las direcciones), sino que debe de existir algun tipo de indexación. Quisiera que me dierais ideas y direcciones en la red donde poder encontrar información sobre el diseño de buscadores. Todo esto va orientado a crear un archivo de documentación como proyecto de fin de carrera.
Gracias.

  Respuesta:  Fernando Gutiérrez
Nunca se me había ocurrido realizar un buscador, pues es bastante tarea....
Mira..

1. un buscador es un sitio (obvio) que tiene asociado a sus formularios (donde tú entras la información que quieres buscar) a un programa tipo cgi-bin, que ubicado en el servidor del sitio, recibe y procesa dicha información.

2. es lógico que la búsqueda no debe ser secuencial, pues ... uf!... no terminaría nunca. No hay nada que hacer, debe ser indexada, ojalá con índices temáticos para parcializar las bases de datos y eliminar registro que se sabría no cumplirían con la llave de búsqueda. (Tipo Yahoo que en su página muestra un índice de temas).

3. El programa cgi-bin o sencillamente cgi, lo debe realizar, según me contó el webmaster mi universidad, en perl (no recuerdo si se escribe así), en c++ o java.

4. Cada sitio de búsqueda posee un programa errante que se llaman habitualmente robots. Un robot es el encargado de visitar los sitios alrededor del mundo, y de cada sitio que visita, visita también los links que en ellos existen, realizando una búsqueda recursiva. Este robot funciona de dos maneras:
-un archivo, en el servidor de la correspondiente página, indica a los robots que directorios puede visitar de dicho servidor, y por lo tanto, le indica que archivos revizar e incluir en la base de datos.
-existe el comando HTML meta, donde se puede indicar diversa información de la página, incluyendo los ítems que existen dentro de ella, y que permitirám al robot no recorrer la página completa, sino tomar esos parámetros y almacenarlos en su base de datos.
-también existe la posibilidad que en la página del buscador, tu permitas a los visitantes ingresar sus URL e ingresar 10 ó 12 índices temáticos para buscar dicha página:
Por ejemplo, mi página la ingrese en register-it dándole como índices:Chile, Temuco, Programación, Enlaces, etc.

Lo de los programas robots lo leí en una revista, no recuerdo si PCMagazine-Chile o PCWorld-Chile, ´pero es posible que en sus ediciones internacionales pueda salir dicho artículo. Sino, podrás verlo en mi página en http://members.tripod.com/~FHAGC/index.html pero no se cuando, pues estoy algo ocupado realizando mi tesis y no se cuando renueve su contenido.

Creo que información puedes encontrar en www.webmaster.com


  Respuesta:  Mauricio Fragoso
Difiero un poco de la respuesta anterior.

1) Realmente para un programador no debe ser problema descomponer un archivo en sus palabras (descomposición granular)
2) Meter estas palabras relacionadas a cierta página e indexarlas tampoco lo es.
3) En cuanto a la búsqueda solamente es necesario realizar una búsqueda por cada palabra proporcionada por el usuario y arrojar las coincidencias.
3) Que tenga que hacerse en visual C o en Perl tampoco, puede ser hecho en cualquier lenguaje.

Hace unos años hice http://www.tarantula.com.mx el cual representó un trabajo de un fin de semana y el código no excede las 500 lineas.

Esto es fácil de comprender para cualquier programador con experiencia, sin embargo si solamente necesitan un buscador sin tanto rollo, chequen en http://searchbutton.com y ahi les proporcionan todo y es gratuito