Un buscador Web tiene tres subsistemas:
- Un Recolector que visita una serie de páginas Web, incorporandolas a una Colección
0 Un Indexador que convierte la colección en una estructura más manejable y pequeña, llamada Índice
- Un Buscador propiamente tal que recupera ciertas páginas del índice basado en un requerimiento del usuario
Recolector
El recolector tiene la tarea de crear la colección de páginas, para ello, visita una serie de páginas iniciales o puntos de partida, las incorpora a la colección, extrae los enlaces de estas páginas, verifica si están o no presentas ya, y si no están, visita estas páginas referenciadas.
El proceso es recursivo, y se realiza en un ciclo:
1.Revisar la lista de URLs por visitar y escoger una 2.Visitar esa dirección 3.Transformarla para incorporarla a la colección (normalmente, eliminar etiquetas e imágenes de la página, convertir documentos Word o PDF a texto simple, recortarla si es demasiado grande) 4.Extraer los links de la página, y si alguno no está en la lista, agregarlo 5.Volver al primer paso
Indexador
Lo usual es utilizar un índice invertido. En él, la colección es convertida a una lista de palabras, cada una de las cuales apunta a una lista de documentos.
Buscador
Ahora buscar es muy fácil, por ejemplo, si alguien necesita los documentos donde aparezca "casa", el sistema busca en la lista (índice) la palabra "casa", y obtiene de inmediato cuales son los documentos que contienen la palabra. Si se pregunta por dos o más términos, el sistema deberá comparar las listas de cada uno de los términos, realizando una unión o intersección según corresponda.
Cómo vemos, encontrar los documentos no es difícil. El real desafío es encontrar los mejores documentos. La Web es enorme, y hay montones de páginas en ella, pero una persona no puede hacer nada útil si el buscador le entrega 10000 páginas para que las revise - ¡no terminaría nunca!, así que el proceso de ranking (ordenamiento) es crucial para tener, digamos, 10 o 20 direcciones, cantidad que es mucho más razonable.
Una aproximación es comparar las palabras de la consulta con las palabras que hay en los documentos encontrados. Esto es un poco más complejo que simplemente contar cuantas veces aparece cada palabra de la consulta en cada documento, puesto que hay una variable extra a considerar.
Si la página encontrada contiene una palabra por la que se preguntó al buscador, que no aparece en casi ningún otro documento, entonces eso es una buena evidencia de que la página que estamos mirando es importante. Esto ha sido usado durante años con bastante éxito.
Una opción alternativa es la propuesta en [Kle98]. En síntesis se utilizan los links entre las páginas como evidencia. Una forma simple de comenzar a entenderlo es la siguiente hipótesis: una página con buen contenido, seguramente es referenciada desde muchos buenos índices.
Por ejemplo, en la figura tenemos numeradas algunas potenciales índice, y con letras las potenciales páginas de contenido. Vemos que 'b' y 'g' claramente atraen la mayoría de los enlaces desde otras páginas, por lo cual las marcamos como la "mejores páginas de contenido".
Así mismo, la página '4' se destaca como "mejor página índice", precisamente porque apunta a las dos "mejores páginas de contenido". No es la página con más enlaces necesariamente, de hecho '5' tiene más enlaces, pero no son los más apropiados. Al mismo tiempo, el puntaje como página de contenido de 'c' aumenta, porque aparece en una buena fuente de información. Este procedimiento se repite varias veces, sumando puntos como índice y como contenido.
Con algunas variaciones, este esquema se utiliza para rankear resultados en las máquinas de búsqueda más actuales, normalmente en combinación con el ranking por contenido que mostrabamos más arriba.
No está todo dicho, pero al menos es un comienzo para seguir leyendo por su cuenta, si les interesan estos temas.