Búsqueda distribuida

La búsqueda distribuida es un modelo de motor de búsqueda en el que las tareas de rastreo web, indexación y procesamiento de consultas se distribuyen entre múltiples computadoras y redes.

Originalmente, la mayoría de los motores de búsqueda estaban respaldados por una sola supercomputadora. En los últimos años, sin embargo, la mayoría se ha pasado a un modelo distribuido. La búsqueda de Google, por ejemplo, se basa en miles de computadoras que rastrean la Web desde múltiples ubicaciones en todo el mundo.

En el sistema de búsqueda distribuida de Google, cada computadora involucrada en la indexación rastrea y revisa una parte de la Web, toma una URL y sigue todos los enlaces disponibles (menos los marcados para exclusión). La computadora recopila los resultados rastreados de las URL y envía esa información a un servidor centralizado en formato comprimido. El servidor centralizado luego coordina esa información en una base de datos, junto con la información de otras computadoras involucradas en la indexación.

Cuando un usuario escribe una consulta en el campo de búsqueda, el software del servidor de nombres de dominio (DNS) de Google transmite la consulta al grupo de computadoras más lógico, en función de factores como su proximidad al usuario o lo ocupado que está. En el grupo de destinatarios, el software del servidor web distribuye la consulta a cientos o miles de computadoras para buscar simultáneamente. Cientos de computadoras escanean el índice de la base de datos para encontrar todos los registros relevantes. El servidor de índices compila los resultados, el servidor de documentos reúne los títulos y resúmenes y el generador de páginas crea las páginas de resultados de búsqueda.

Algunos proyectos, como Wikia Search (antes Grub), se están moviendo hacia un modelo de búsqueda aún más descentralizado. De manera similar a los proyectos de computación distribuida como SETI @ home, muchos proyectos de búsqueda distribuida están respaldados por una red de usuarios voluntarios cuyas computadoras ejecutan software cliente en segundo plano.