Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Departamento de Informática,
Sergey@cs.stanford.edu y page@cs.stanford.edu
Abstracto
En este artículo, presentamos Google, un prototipo de un motor de búsqueda a gran escala que
hace pesadas
Uso de la estructura presente en hipertexto. Google está diseñado para rastrear e indexar la Web
de manera eficiente
Y producir resultados de búsqueda mucho más satisfactorios que los sistemas existentes. El
prototipo con un
Ingeniería de un motor de búsqueda es una tarea difícil. Los motores de búsqueda indexan
decenas a cientos de
Millones de páginas web que implican un número comparable de términos distintos. Responden a
decenas de
Millones de consultas cada día. A pesar de la importancia de los motores de búsqueda a gran
escala en la web,
Muy poca investigación académica se ha hecho sobre ellos. Además, debido al rápido avance
hace años que. Este documento proporciona una descripción en profundidad de nuestro motor de
búsqueda web a gran escala - el
Primera descripción pública tan detallada que sabemos de hasta la fecha. Aparte de los problemas
de escalado
Técnicas de búsqueda tradicionales a los datos de esta magnitud, hay nuevos retos técnicos
Con el uso de la información adicional presente en hipertexto para producir mejores resultados de
búsqueda. Esta
Este artículo aborda esta cuestión de cómo construir un sistema práctico a gran escala que
Con colecciones de hipertexto incontroladas donde cualquiera puede publicar lo que quiera.
Palabras claves
1. Introducción
(Nota: Existen dos versiones de este documento: una versión completa más larga y una versión
impresa más corta.
Es probable que navegue por la web utilizando su gráfico de enlaces, a menudo comenzando con
índices mantenidos humanos de alta calidad
Como Yahoo! o con motores de búsqueda. Las listas mantenidas por los humanos cubren los
temas populares
Subjetivo, caro de construir y mantener, lento para mejorar, y no puede cubrir todos los temas
esotéricos.
Para empeorar las cosas, algunos anunciantes intentan llamar la atención de la gente tomando
medidas
Engañar a los motores de búsqueda automatizados. Hemos construido un motor de búsqueda a
gran escala que aborda muchas de las
Los problemas de los sistemas existentes. Hace un uso especialmente intenso de la estructura
adicional presente en
Hipertexto para proporcionar resultados de búsqueda de mayor calidad. Elegimos nuestro nombre
de sistema, Google, porque
Es una ortografía común de googol, o 10100 y encaja bien con nuestra meta de construir una
búsqueda a gran escala
Motores.
Uno de los primeros motores de búsqueda web, el World Wide Web Worm (WWWW) [McBryan
94] tenía un índice
De 110.000 páginas web y documentos web accesibles. A partir de noviembre de 1997, los
principales motores de búsqueda
Reclamar un índice de 2 millones (WebCrawler) a 100 millones de documentos web (de Search
Engine
Reloj). Es previsible que para el año 2000, un índice comprensivo de la Web contenga
también. En marzo y abril de 1994, el gusano de la World Wide Web recibió un promedio de
aproximadamente 1500 consultas
por día. En noviembre de 1997, Altavista afirmó que manejaba aproximadamente 20 millones de
consultas por día. Con el
Que los principales motores de búsqueda manejarán cientos de millones de consultas por día para
el año 2000. El objetivo de
Nuestro sistema es abordar muchos de los problemas, tanto en calidad como en escalabilidad,
introducidos por escalamiento
Tecnología de motores de búsqueda a números tan extraordinarios.
La creación de un motor de búsqueda que escalas incluso a la web de hoy presenta muchos
desafíos. Rastreo rápido
La tecnología es necesaria para reunir los documentos web y mantenerlos actualizados. Se debe
utilizar espacio de almacenamiento
Cientos de gigabytes de datos de manera eficiente. Las consultas deben ser manejadas
rápidamente, a un ritmo de cientos a
Estas tareas son cada vez más difíciles a medida que crece la Web. Sin embargo, el rendimiento del
Excepciones a este progreso como tiempo de búsqueda de disco y robustez del sistema operativo.
Al diseñar Google,
Hemos considerado tanto la tasa de crecimiento de la Web como los cambios tecnológicos. Google
está diseñado para
Escala bien a conjuntos de datos extremadamente grandes. Hace un uso eficiente del espacio de
almacenamiento para almacenar el índice. Sus datos
Las estructuras están optimizadas para un acceso rápido y eficiente (ver sección 4.2). Además,
esperamos que el costo
El índice y el texto del almacén o el HTML disminuirá eventual con respecto a la cantidad que
estará disponible (véase
Apéndice B). Esto resultará en propiedades de escala favorables para sistemas centralizados como
Google.
Nuestro principal objetivo es mejorar la calidad de los motores de búsqueda web. En 1994,
algunas personas creían
Índice de búsqueda completo haría posible encontrar algo fácilmente. Según Best of the Web
1994 - Navigators, "El mejor servicio de navegación debería facilitar la búsqueda de casi cualquier
Web (una vez que se han introducido todos los datos) ". Sin embargo, la web de 1997 es bastante
diferente.
Un motor de búsqueda recientemente, pueden fácilmente demostrar que la integridad del índice
no es el único
La calidad de los resultados de la búsqueda. "Los resultados basura" suelen eliminar los resultados
que un usuario está interesado pulg De hecho,
A partir de noviembre de 1997, sólo uno de los cuatro principales motores de búsqueda comercial
se encuentra (devuelve su propia
Página de búsqueda en respuesta a su nombre en los diez primeros resultados). Una de las
principales causas de este problema es que
La capacidad de mirar los documentos no lo ha hecho. La gente todavía está dispuesta a mirar las
primeras decenas de resultados.
Debido a esto, a medida que crece el tamaño de la colección, necesitamos herramientas que
tengan una precisión muy alta (número de
Sólo incluyen los mejores documentos, ya que puede haber decenas de miles de ligeramente
relevante
documentos. Esta precisión muy alta es importante incluso a expensas del recuerdo (el número
total de
Documentos relevantes que el sistema pueda devolver). Hay un poco de optimismo reciente de
que el uso de
Más información hipertextual puede ayudar a mejorar la búsqueda y otras aplicaciones [Marchiori
97] [Spertus
97] [Weiss 96] [Kleinberg 98]. En particular, la estructura de enlace [Page 98] y el texto de enlace
proporcionan una gran cantidad de
Información para hacer juicios de relevancia y filtrado de calidad. Google hace uso de ambos
enlaces
Aparte de un tremendo crecimiento, la Web también se ha vuelto cada vez más comercial a través
del tiempo. En 1993,
El 1,5% de los servidores web estaban en dominios .com. Este número creció a más del 60% en
1997. Al mismo tiempo,
Los motores de búsqueda han migrado del dominio académico al comercial. Hasta ahora la
mayoría de las búsquedas
El desarrollo del motor ha pasado en las empresas con poca publicación de detalles técnicos. Esto
causa
La tecnología de los motores de búsqueda para permanecer en gran medida un arte negro y
orientado a la publicidad (véase el Apéndice A).
Con Google, tenemos una fuerte meta de impulsar más desarrollo y comprensión en el mundo
académico.
reino.
Otra meta importante del diseño era construir los sistemas que un número razonable de gente
pueda utilizar realmente.
El uso era importante para nosotros porque creemos que algunas de las investigaciones más
interesantes involucrarán
Aprovechando la gran cantidad de datos de uso que están disponibles en los sistemas web
modernos. Por ejemplo, hay
Son muchas decenas de millones de búsquedas realizadas todos los días. Sin embargo, es muy
difícil obtener estos datos,
Nuestro objetivo final de diseño era construir una arquitectura que pudiera respaldar nuevas
actividades de
Datos web a gran escala. Para respaldar nuevos usos de investigación, Google almacena todos los
documentos reales que rastrea
En forma comprimida. Uno de nuestros principales objetivos en el diseño de Google fue establecer
un entorno donde
Otros investigadores pueden entrar rápidamente, procesar grandes trozos de la web y producir
resultados interesantes
Que habría sido muy difícil de producir de otra manera. En el corto tiempo que el sistema ha
Ya han sido varios documentos utilizando bases de datos generadas por Google, y muchos otros
están en marcha.
Otro objetivo que tenemos es crear un entorno similar al de Spacelab en el que investigadores o
incluso estudiantes puedan
El motor de búsqueda de Google tiene dos características importantes que le ayudan a producir
resultados de alta precisión. En primer lugar,
Hace uso de la estructura de enlaces de la Web para calcular una clasificación de calidad para cada
página web. Este ranking
Se llama PageRank y se describe en detalle en [Página 98]. En segundo lugar, Google utiliza el
enlace para mejorar
Resultados de la búsqueda.
Motores de búsqueda web. Hemos creado mapas que contienen hasta 518 millones de estos
hipervínculos, un
Muestra significativa del total. Estos mapas permiten un cálculo rápido del "PageRank" de una
página web, un
Medida objetiva de su importancia de citación que corresponde bien con la idea subjetiva
importancia. Debido a esta correspondencia, PageRank es una excelente manera de priorizar los
resultados de
Búsquedas de palabras clave web. Para la mayoría de los temas populares, una búsqueda simple
de concordancia de texto que está restringida a la web
Los títulos de página se desempeñan admirablemente cuando PageRank prioriza los resultados
(demo disponible en
mucho.
La literatura de citas académicas se ha aplicado a la web, en gran medida contando citas o vínculos
de retroceso a un
Página dada. Esto da una aproximación de la importancia o calidad de una página. PageRank
amplía este
Idea por no contar los enlaces de todas las páginas por igual, y por la normalización por el número
de enlaces en una página.
Asumimos que la página A tiene las páginas T1 ... Tn que apuntan a ella (es decir, son citas). El
parámetro d
Más detalles acerca de d en la siguiente sección. También C (A) se define como el número de
enlaces que van
Tenga en cuenta que los PageRanks forman una distribución de probabilidad sobre páginas web,
por lo que la suma de todos
Páginas se pueden calcular en pocas horas en una estación de trabajo de tamaño medio. Hay
muchos otros detalles
PageRank puede ser pensado como un modelo de comportamiento del usuario. Asumimos que
hay un "surfista aleatorio" que es
Dado una página web al azar y sigue haciendo clic en los enlaces, nunca golpear "atrás", pero
finalmente se aburre
Y comienza en otra página aleatoria. La probabilidad de que la persona que practica surf al azar
visite una página es su PageRank.
Otra página aleatoria. Una variación importante es agregar solamente el factor de amortiguación d
a una sola página, o un
Grupo de páginas. Esto permite la personalización y puede hacer casi imposible deliberar
Engañar al sistema para obtener una clasificación más alta. Tenemos varias otras extensiones a
PageRank,
Otra justificación intuitiva es que una página puede tener un PageRank alto si hay muchas páginas
que apuntan
A él, o si hay algunas páginas que apuntan a ella y tienen un PageRank alto. Intuitivamente, las
páginas que están bien
Citados de muchos lugares alrededor de la web vale la pena mirar. También, las páginas que
quizás sólo tienen una
Citación de algo así como la página de inicio de Yahoo! también son generalmente vale la pena
mirar. Si una página no fue
Alta calidad, o era un acoplamiento quebrado, él es muy probable que la página inicial de Yahoo
no enlazaría a ella.
PageRank maneja estos dos casos y todo lo demás mediante la propagación recursiva de pesos
El texto de los enlaces se trata de una manera especial en nuestro buscador. La mayoría de los
motores de búsqueda asocian el texto
De un enlace con la página en la que se encuentra el enlace. Además, lo asociamos con la página a
la que apunta el enlace.
Esto tiene varias ventajas. En primer lugar, las anclas a menudo proporcionan descripciones más
precisas de las páginas web que
Las propias páginas. En segundo lugar, pueden existir anclas para documentos que no pueden ser
Motor de búsqueda basado en texto, como imágenes, programas y bases de datos. Esto hace
posible volver a la red
Páginas que en realidad no se han rastreado. Tenga en cuenta que las páginas que no se han
rastreado pueden causar
Problemas, ya que nunca se verifican su validez antes de ser devueltos al usuario. En este caso, el
Motor de búsqueda puede incluso devolver una página que nunca existió realmente, pero tenía
hipervínculos apuntando a ella.
Sin embargo, es posible ordenar los resultados, de modo que este problema particular rara vez
ocurre.
Esta idea de propagar el texto ancla a la página a la que se refiere se implementó en la World Wide
Web
Worm [McBryan 94], especialmente porque ayuda a buscar información no textual y amplía la
búsqueda
Cobertura con menos descargaUtilizamos la propagación del ancla principalmente porque el texto
del ancla
Puede ayudar a proporcionar resultados de mejor calidad. El uso eficiente del texto de anclaje es
técnicamente difícil debido a
Las grandes cantidades de datos que deben ser procesados. En nuestro rastreo actual de 24
millones de páginas,
Aparte de PageRank y el uso de texto de anclaje, Google tiene varias otras características. En
primer lugar, tiene ubicación
Información para todos los golpes y por lo que hace un uso extensivo de la proximidad en la
búsqueda. En segundo lugar, Google mantiene la pista
De algunos detalles visuales de la presentación tales como tamaño de fuente de palabras. Las
palabras en una fuente más grande o más audaz son
Ponderado más alto que otras palabras. En tercer lugar, el HTML completo de páginas está
disponible en un repositorio.
3 Trabajo relacionado
Búsqueda de la investigación en la web tiene una historia corta y concisa. El Gusano de la World
Wide Web (WWWW)
[McBryan 94] fue uno de los primeros motores de búsqueda web. Posteriormente fue seguido por
otros
Motores de búsqueda académicos, muchos de los cuales son ahora empresas públicas.
Comparado con el crecimiento del
Web y la importancia de los motores de búsqueda hay muy pocos documentos sobre los motores
de búsqueda recientes
[Pinkerton 94]. Según Michael Mauldin (científico en jefe, Lycos Inc) [Mauldin], "los diversos
(Incluyendo a Lycos) vigilan de cerca los detalles de estas bases de datos. "Sin embargo, ha habido
una feria
Sin embargo, la mayor parte de la investigación sobre los sistemas de recuperación de información
está en pequeñas empresas bien controladas
Colecciones homogéneas tales como colecciones de artículos científicos o noticias sobre un tema
relacionado.
Utiliza una colección bastante pequeña y bien controlada para sus puntos de referencia. El
"Corpus muy grande"
Trabajar bien en TREC a menudo no producen buenos resultados en la web. Por ejemplo, el vector
estándar
El modelo de espacio intenta devolver el documento que más se aproxima a la consulta, dado que
tanto la consulta
Y el documento son vectores definidos por su ocurrencia de palabra. En la web, esta estrategia a
menudo
Documentos cortos que son la consulta más algunas palabras. Por ejemplo, hemos visto un motor
de búsqueda principal
Devolver una página que contiene sólo "Bill Clinton Sucks" y la imagen de una "Bill Clinton"
consulta. Algunos sostienen
Que en la web, los usuarios deben especificar más exactamente lo que quieren y añadir más
palabras a sus
consulta. Discordamos vehementemente de esta posición. Si un usuario emite una consulta como
"Bill Clinton"
Obtener resultados razonables ya que hay una enorme cantidad de información de alta calidad
disponible en este
tema. Dado ejemplos como estos, creemos que el trabajo estándar de recuperación de
información debe ser
Podría estar disponible. Por ejemplo, los documentos difieren internamente en su idioma (tanto
humano como
(Texto, HTML, PDF, imágenes, sonidos), e incluso puede ser generado por la máquina (archivos de
registro o salida
De una base de datos). Por otro lado, definimos meta información externa como información que
puede ser
Inferido sobre un documento, pero no está contenido en él. Ejemplos de meta información
externa incluyen
Sólo son las posibles fuentes de meta información externa variada, pero las cosas que se están
midiendo
Varían muchos órdenes de magnitud también. Por ejemplo, compare la información de uso de una
Homepage, como Yahoo que actualmente recibe millones de páginas vistas todos los días con un
oscuro
Artículo histórico que podría recibir una visión cada diez años. Claramente, estos dos elementos
deben ser tratados
Otra gran diferencia entre la web y las colecciones tradicionales bien controladas es que hay
Prácticamente ningún control sobre lo que la gente puede poner en la web. Acople esta
flexibilidad para publicar cualquier cosa con
La enorme influencia de los motores de búsqueda para encaminar el tráfico y las empresas que
deliberadamente
Representado al usuario es abusado para manipular los motores de búsqueda. Incluso hay
numerosas empresas
En primer lugar, proporcionaremos un debate de alto nivel sobre la arquitectura. Luego, hay
algunas
Índice ordenado adelante. El indizador realiza otra función importante. Analiza todos los enlaces
en
Cada página web y almacena información importante sobre ellos en un archivo de anclas. Este
archivo contiene
Suficiente información para determinar a dónde va cada enlace desde y hacia, y el texto del
enlace.
El URLresolver lee el archivo de anclajes y convierte las URL relativas en URLs absolutas y, a su vez,
en
DocIDs. Coloca el texto de anclaje en el índice directo, asociado con el docID que los puntos de
anclaje
a. También genera una base de datos de enlaces que son pares de docIDs. La base de datos de
enlaces se utiliza para calcular
El clasificador toma los barriles, que son ordenados por docID (esto es una simplificación, vea la
Sección 4.2.5), y
Recurre a ellos por wordID para generar el índice invertido. Esto se hace en su lugar para que poco
temporal
Se necesita espacio para esta operación. El clasificador también produce una lista de ID de palabra
y desplazamientos en el
Índice invertido. Un programa llamado DumpLexicon toma esta lista junto con el léxico producido
por el
Indexador y genera un nuevo léxico para ser usado por el buscador. El buscador es ejecutado por
un servidor web y
Utiliza el léxico construido por DumpLexicon junto con el índice invertido y los PageRanks para
responder
Consultas.
Las estructuras de datos de Google están optimizadas para que una gran colección de documentos
pueda rastrearse, indexarse y
Buscado con poco costo. Aunque, las CPUs y las tasas de producción de entrada a granel han
mejorado dramáticamente
Los años, una búsqueda de disco todavía requiere unos 10 ms para completar. Google está
diseñado para evitar que el disco busque
Siempre que sea posible, y esto ha tenido una influencia considerable en el diseño de las
estructuras de datos.
4.2.1 BigFiles
BigFiles son archivos virtuales que abarcan múltiples sistemas de archivos y son direccionables por
enteros de 64 bits. los
4.2.2 Repositorio
Figura 2. El repositorio no requiere ninguna otra estructura de datos para ser utilizada para
acceder a ella. Esto ayuda con
La coherencia de los datos y facilita mucho el desarrollo; Podemos reconstruir todas las otras
estructuras de datos de
El índice de documentos mantiene información sobre cada documento. Es un ISAM de ancho fijo
(Índice secuencial
Modo de acceso), ordenado por docID. La información almacenada en cada entrada incluye la
Contiene su URL y título. De lo contrario, el puntero apunta a la URLlist que contiene sólo la URL.
Esta decisión de diseño fue impulsada por el deseo de tener una estructura de datos
razonablemente compacta, y la
Además, hay un archivo que se utiliza para convertir URLs en docIDs. Es una lista de sumas de
comprobación de URL
Con sus docIDs correspondientes y se clasifica por checksum. Con el fin de encontrar el docID de
un particular
URL, se calcula la suma de verificación de la URL y se realiza una búsqueda binaria en el archivo de
sumas de comprobación para encontrar
Su docID. Las URL pueden convertirse en docIDs en lote haciendo una combinación con este
archivo. Este es el
Técnica que el URLresolver utiliza para convertir URLs en docIDs. Este modo de actualización por
lotes es crucial porque
De lo contrario debemos realizar una búsqueda para cada enlace que suponiendo que un disco
llevaría más de un
4.2.4 Léxico
El léxico tiene varias formas diferentes. Un cambio importante de los sistemas anteriores es que el
léxico
Memoria en una máquina con 256 MB de memoria principal. El léxico actual contiene 14 millones
de palabras
(Aunque algunas palabras raras no fueron agregadas al léxico). Se implementa en dos partes: una
lista de las
Palabras (concatenadas juntas pero separadas por nulos) y una tabla hash de punteros. Para
diversas funciones,
La lista de palabras tiene alguna información auxiliar que está más allá del alcance de este artículo
para explicarlo completamente.
Una lista de resultados corresponde a una lista de ocurrencias de una palabra en particular en un
documento particular incluyendo
Información de posición, fuente y mayúsculas. Las listas de visitas representan la mayor parte del
espacio
Adelante y los índices invertidos. Debido a esto, es importante representarlos tan eficientemente
como
posible. Se consideraron varias alternativas para codificar la posición, fuente y mayúsculas - simple
Codificación (un triple de enteros), una codificación compacta (una asignación optimizada mano
de bits), y Huffman
codificación. Al final elegimos una codificación compacta optimizada manualmente ya que
requería mucho menos espacio que el
Codificación simple y mucho menos manipulación de bits que Huffman codificación. Los detalles
de los golpes se muestran en
Figura 3.
Nuestra codificación compacta utiliza dos bytes para cada golpe. Hay dos tipos de éxitos: golpes de
lujo y golpes sencillos.
Los impactos de lujo incluyen los impactos que ocurren en una URL, título, texto de anclaje o
metaetiqueta. Los éxitos sencillos incluyen todo
más. Un golpe simple consiste en un bit de capitalización, tamaño de fuente y 12 bits de posición
de palabra en un documento (todos
Las posiciones superiores a 4095 están marcadas como 4096). El tamaño de la fuente se
representa con relación al resto del documento
Utilizando tres bits (sólo 7 valores se utilizan realmente porque 111 es el indicador que señala un
golpe de fantasía). Un elegante
Hit consiste en un bit de mayúsculas, el tamaño de fuente establecido en 7 para indicar que es un
golpe de fantasía, 4 bits para codificar el
Tipo de golpe de fantasía, y 8 bits de posición. Para los golpes de anclaje, los 8 bits de posición se
dividen en 4 bits para
Posición en el ancla y 4 bits para un hash de la docID el ancla se produce pulg Esto nos da algunos
limitados
Mientras no hay muchas anclas para una palabra en particular. Esperamos actualizar
La forma en que se almacenan los resultados de anclaje para permitir una mayor resolución en los
campos de posición y docIDhash.
Utilizamos el tamaño de fuente en relación con el resto del documento porque al buscar, no desea
clasificar
De lo contrario documentos idénticos de manera diferente sólo porque uno de los documentos
está en una fuente más grande.
La longitud de una lista de resultados se almacena antes de los golpes ellos mismos.
La diferencia es muy pequeña para un número razonable de cubos y ahorra tiempo considerable y
la codificación
WordID, almacenamos cada ID de palabra como una diferencia relativa con respecto al ID de
palabra mínimo que cae en la
Y el Léxico
Barrel el wordID es pulg De esta manera, podemos utilizar sólo 24 bits para el wordID en los
barriles sin clasificar,
El índice invertido consiste en los mismos barriles que el índice forward, excepto que han sido
Procesado por el clasificador. Para cada wordID válido, el léxico contiene un puntero en el barril
que
WordID cae en. Señala a un doclist de docID junto con sus listas de golpe correspondientes. Este
doclist
Una cuestión importante es en qué orden deben aparecer los docID en el doclist. Una solución
simple es
Almacénelos ordenados por docID. Esto permite la rápida fusión de diferentes doclists para
múltiples palabras
documento. Esto hace que responder a una palabra de consultas trivial y hace probable que las
respuestas a
Las consultas de palabras múltiples están cerca del comienzo. Sin embargo, la fusión es mucho
más difícil. Además, esto hace que
Desarrollo mucho más difícil en que un cambio a la función de clasificación requiere una
reconstrucción del índice.
Elegimos un compromiso entre estas opciones, manteniendo dos conjuntos de barriles invertidos -
un conjunto para el éxito
Listas que incluyen hits de título o de anclaje y otro conjunto para todas las listas de aciertos. De
esta manera, verificamos el primer conjunto de
Barriles primero y si no hay suficientes fósforos dentro de esos barriles comprobamos los más
grandes.
Ejecutar un rastreador web es una tarea difícil. Hay problemas difíciles de rendimiento y
confiabilidad y
Aún más importante, hay asuntos sociales. El rastreo es la aplicación más frágil ya que implica
Interactuando con cientos de miles de servidores web y varios servidores de nombres que están
más allá
Abierto a la vez. Esto es necesario para recuperar las páginas web a un ritmo lo suficientemente
rápido. A velocidades máximas, el sistema
Puede rastrear más de 100 páginas web por segundo utilizando cuatro rastreadores. Esto equivale
a aproximadamente 600 K por segundo
de datos. Un mayor estrés de rendimiento es la búsqueda de DNS. Cada rastreador mantiene una
caché DNS propia
No necesita hacer una búsqueda de DNS antes de rastrear cada documento. Cada uno de los
cientos de conexiones
Puede estar en varios estados diferentes: buscar DNS, conectarse al host, enviar solicitud y
Respuesta de recepción. Estos factores hacen que el rastreador sea un componente complejo del
sistema. Usa
E / S asíncrona para administrar eventos y una serie de colas para mover la búsqueda de páginas
de estado a estado.
Resulta que la ejecución de un rastreador que se conecta a más de medio millón de servidores, y
genera decenas
De millones de entradas de registro genera una cantidad justa de correo electrónico y llamadas
telefónicas. Debido al gran número de
De personas que vienen en línea, siempre hay quienes no saben lo que es un rastreador, porque
este es el
Primera que han visto. Casi todos los días, recibimos un mensaje de correo electrónico como,
"Wow, se miró a un montón de
Páginas de mi sitio web. ¿Cómo te gustó? "También hay algunas personas que no saben
Robots protocolo de exclusión, y creo que su página debe estar protegido de la indexación por una
declaración como,
"Esta página está protegida por derechos de autor y no debe ser indexada", lo que no es necesario
decir que es difícil para los rastreadores web
Por ejemplo, nuestro sistema intentó rastrear un juego en línea. Esto resultó en un montón de
mensajes de basura en el
Medio de su juego! Resulta que este fue un problema fácil de arreglar. Pero este problema no
había surgido
Hasta que habíamos descargado decenas de millones de páginas. Debido a la inmensa variación en
las páginas web y
Invariablemente, hay cientos de problemas oscuros que pueden ocurrir solamente en una página
fuera del conjunto
Acceso a grandes partes de la Internet debe ser diseñado para ser muy robusto y cuidadosamente
probado. Desde grande
Dedicado a leer el correo electrónico y resolver estos problemas a medida que vienen.
Parsing - Cualquier analizador que está diseñado para ejecutarse en toda la Web debe manejar
una gran variedad de
Posibles errores. Estos van desde errores tipográficos en las etiquetas HTML a kilobytes de ceros
en el medio de una etiqueta,
Caracteres no ASCII, etiquetas HTML anidadas de cientos de profundidad, y una gran variedad de
otros errores que
Desafiar a la imaginación de nadie para llegar a otros igualmente creativos. Para una velocidad
máxima,
En lugar de utilizar YACC para generar un parser CFG, utilizamos flex para generar un analizador
léxico que
Nos equipamos con su propia pila. Desarrollando este analizador que funciona a una velocidad
razonable y es muy
De barriles. Cada palabra se convierte en un wordID mediante el uso de una tabla hash en
memoria - el léxico.
Las nuevas adiciones a la tabla de hash de léxico se registran en un archivo. Una vez que las
palabras se convierten en
Los barriles delanteros. La principal dificultad con la paralelización de la fase de indexación es que
la
El léxico debe ser compartido. En lugar de compartir el léxico, tomamos el enfoque de escribir un
registro de
Todas las palabras extra que no estaban en un léxico de base, que fijamos en 14 millones de
palabras. De esa manera
Un indexador final.
Clasificación - Para generar el índice invertido, el clasificador toma cada uno de los barriles
delanteros y
Ordena por wordID para producir un barril invertido para los golpes de título y de anclaje y un
texto completo invertido
barril. Este proceso sucede un barril a la vez, requiriendo así poco almacenamiento temporal.
También nosotros
Paralelizar la fase de clasificación para utilizar tantas máquinas como las que tenemos
simplemente ejecutando múltiples Clasificadores, que pueden procesar diferentes cubetas al
mismo tiempo. Dado que los barriles no encajan en
4.5 Búsqueda
Los motores de búsqueda parecían haber hecho grandes progresos en términos de eficiencia. Por
lo tanto, nos hemos centrado
Más en calidad de búsqueda en nuestra investigación, aunque creemos que nuestras soluciones
son escalables a
Consulta, Google mira la lista de resultados de ese documento para esa palabra.
Google considera que cada golpe es uno de varios tipos diferentes (título, ancla, URL, fuente de
texto sin formato,
Texto en letra pequeña, ...), cada uno de los cuales tiene su propio peso-tipo. Los pesos de tipo
constituyen un vector
Indexados por tipo. Google cuenta el número de visitas de cada tipo en la lista de resultados.
Entonces cada cuenta es
Convertido en una cuenta-peso. Los pesos de conteo aumentan linealmente con los conteos al
principio, pero rápidamente disminuyen
De modo que más de un cierto conteo no ayudará. Tomamos el producto punto del vector de
contadores-pesos
Con el vector de pesos de tipo para calcular una puntuación de IR para el documento. Por último,
la puntuación IR es
Para una búsqueda de múltiples palabras, la situación es más complicada. Ahora se deben
escanear múltiples listas de aciertos
A través de una vez para que los éxitos que ocurren cerca juntos en un documento se ponderan
más alto que los éxitos
Ocurriendo muy lejos. Los éxitos de las listas de múltiples aciertos se combinan para que los éxitos
cercanos sean igualados
juntos. Para cada conjunto de coincidencias, se calcula una proximidad. La proximidad se basa en
la
Una frase coincidente con "ni siquiera cerca". Los conteos se calculan no sólo para cada tipo de
golpe sino para cada tipo
Y proximidad. Cada tipo y par de proximidad tiene un tipo-prox-peso. Los conteos se convierten en
Cuenta-pesos y tomamos el producto punto de los pesos de cuenta y los pesos de tipo-prox para
computar
Una puntuación de IR. Todos estos números y matrices se pueden mostrar con los resultados de la
búsqueda usando un
Modo de depuración especial. Estas pantallas han sido muy útiles en el desarrollo del sistema de
clasificación.
4.5.2 Comentarios
La función de clasificación tiene muchos parámetros como los pesos de tipo y los pesos de tipo-
prox. Averiguar
Los valores correctos para estos parámetros es algo de un arte negro. Para ello, tenemos un
usuario
De este cambio en todas las búsquedas anteriores que fueron clasificados. Aunque lejos de ser
perfecto, esto nos da
1. Analizar la consulta.
5 Resultados y Rendimiento
Junto con gráficos de barras. Por último, no hay resultados sobre un Bill que no sea Clinton o sobre
un Clinton
Que no sea Bill. Esto se debe a que ponemos una gran importancia en la proximidad de las
ocurrencias de palabras. De
Por supuesto, una verdadera prueba de la calidad de un motor de búsqueda implicaría un extenso
estudio de usuario o resultados
Análisis que no tenemos espacio para aquí. En su lugar, invitamos al lector a probar Google por sí
mismos
En http://google.stanford.edu.
Http://www.whitehouse.gov/
Http://www.whitehouse.gov/
Http://www.whitehouse.gov/WH/EOP/OP/html/OP_Home.html
Http://www.whitehouse.gov/WH/Welcome.html
Http://www.whitehouse.gov/WH/Mail/html/Mail_President.html
Mailto: president@whitehouse.gov
99,98%
Mailto: President@whitehouse.gov
99,27%
Http://zpub.com/un/un-bc.html
Http://zpub.com/un/un-bc9.html
Http://www.realchange.org/clinton.htm
$ 3 Bill Clinton 94.73% (sin fecha) (4K)
Http://www.gatewy.net/~tjohnson/clinton1.html
Aparte de la calidad de la búsqueda, Google está diseñado para escalar de forma rentable el
tamaño de la Web, ya que
Más de un tercio del total de datos que almacena. A los precios actuales del disco esto hace que el
repositorio sea relativamente
Fuente barata de datos útiles. Más importante aún, el total de todos los datos utilizados por el
motor de búsqueda requiere
Una cantidad comparable de almacenamiento, unos 55 GB. Además, la mayoría de las consultas se
pueden contestar
Índice invertido corto. Con una mejor codificación y compresión del índice de documentos, una
web de alta calidad
Más rápido que los rastreadores. Esto se debe en gran medida a que
Horas.
Mejorar el desempeño de la búsqueda no fue el foco principal de nuestra investigación hasta este
punto. los
La versión actual de Google responde a la mayoría de las consultas entre 1 y 10 segundos. Esta vez
es mayormente
Dominado por el disco IO sobre NFS (ya que los discos están distribuidos en varias máquinas).
Además,
Software y mejoras algorítmicas. Nuestro objetivo es ser capaz de manejar cientos de consultas
por
segundo. La Tabla 2 tiene algunos tiempos de consulta de ejemplo de la versión actual de Google.
Se repiten para
Léxico 293 MB
Se recaudaron 24 millones
Cuadro 1. Estadísticas
6. Conclusiones
ellos.
Un motor de búsqueda web a gran escala es un sistema complejo y aún queda mucho por hacer.
Nuestro inmediato
Los objetivos son mejorar la eficiencia de búsqueda y escalar a aproximadamente 100 millones de
páginas web. Algunos
Otra área que requiere mucha investigación es las actualizaciones. Debemos tener algoritmos
inteligentes para decidir qué
Las páginas web viejas deben ser rastreadas y qué nuevas deben ser rastreadas. El trabajo hacia
esta meta
Hecho en [Cho 98]. Un área prometedora de investigación está utilizando escondrijos proxy para
construir bases de datos de búsqueda,
Ya que son impulsados por la demanda. Estamos planeando agregar funciones sencillas
compatibles con la búsqueda comercial
Motores como operadores booleanos, negación y derivación. Sin embargo, otras características
están empezando a ser
Agrupación). También planeamos apoyar el contexto del usuario (como la ubicación del usuario) y
el resumen de resultados. Nosotros
También están trabajando para ampliar el uso de la estructura del enlace y el texto del enlace.
Experimentos simples indican PageRank
Puede personalizarse aumentando el peso de la página principal o de los marcadores de un
usuario. En cuanto al texto del enlace,
Están experimentando con el uso de texto alrededor de los enlaces, además del texto del enlace
en sí. Una búsqueda en la Web
Motor es un entorno muy rico para las ideas de investigación. Tenemos demasiados para
enumerar aquí así que no
Esperamos que esta sección de Trabajo Futuro sea mucho más corta en un futuro próximo.
El mayor problema que enfrentan los usuarios de los motores de búsqueda web hoy en día es la
calidad de los resultados que reciben de vuelta.
Si bien los resultados son a menudo divertidos y ampliar los horizontes de los usuarios, a menudo
son frustrantes y consumen
tiempo precioso. Por ejemplo, el resultado superior para una búsqueda de "Bill Clinton" en uno de
los
Los motores de búsqueda comerciales era la broma de Bill Clinton del día: 14 de abril, 1997.
Google se diseña para
Proporcionar una búsqueda de mayor calidad para que la Web siga creciendo rápidamente, la
información se puede encontrar fácilmente.
Con el fin de lograr esto Google hace un gran uso de la información hipertextual que consiste en el
enlace
Estructura y enlace (ancla) del texto. Google también utiliza información de proximidad y fuente.
Si bien la evaluación de un
Motor de búsqueda es difícil, hemos encontrado subjetivamente que Google devuelve resultados
de búsqueda de mayor calidad
Que los motores de búsqueda comerciales actuales. El análisis de la estructura de enlaces a través
de PageRank permite a Google
Evaluar la calidad de las páginas web. El uso de texto de enlace como una descripción de lo que el
vínculo apunta a ayuda
Los resultados del motor de búsqueda pertinentes (y en cierto grado de alta calidad). Por último,
el uso de la proximidad
Misma consulta
Repetido (IO
En su mayoría en caché)
Consulta de la CPU
Veces)
Total
Veces)
UPC
Veces)
Total
Veces)
vicio
difícil
buscar
Aparte de la calidad de la búsqueda, Google está diseñado para escalar. Debe ser eficiente tanto
en el espacio como en el tiempo,
Y los factores constantes son muy importantes cuando se trata con toda la Web. En la
implementación de Google,
Han visto cuellos de botella en la CPU, el acceso a la memoria, la capacidad de memoria, el disco
busca, el rendimiento del disco, el disco
Capacidad y IO de red. Google ha evolucionado para superar una serie de cuellos de botella
durante
Varias operaciones. Las principales estructuras de datos de Google hacen un uso eficiente del
espacio de almacenamiento disponible.
Además, las operaciones de rastreo, indexación y clasificación son lo suficientemente eficaces para
poder
Índice de una parte sustancial de la web - 24 millones de páginas, en menos de una semana.
Esperamos poder
Además de ser un motor de búsqueda de alta calidad, Google es una herramienta de investigación.
Los datos que Google
Recogido ya ha dado lugar a muchos otros trabajos presentados a conferencias y muchos más
sobre la
camino. Investigaciones recientes como [Abiteboul 97] han mostrado una serie de limitaciones a
las
Web que puede ser contestada sin tener la Web disponible localmente. Esto significa que Google
(o un
Sistema similar) no es sólo una valiosa herramienta de investigación sino necesaria para una
amplia gama de aplicaciones.
Esperamos que Google sea un recurso para buscadores e investigadores de todo el mundo y
7 Agradecimientos
Scott Hassan y Alan Steremberg han sido críticos para el desarrollo de Google. Su talento
Las contribuciones son insustituibles, y los autores les deben mucha gratitud. También queremos
agradecer
Héctor García-Molina, Rajeev Motwani, Jeff Ullman y Terry Winograd y toda la WebBase
Grupo por su apoyo y discusiones perspicaces. Por último, queremos reconocer la generosidad
Proporcionados por DARPA y NASA, y por Interval Research, y los socios industriales de Stanford
Referencias
Cosecha http://harvest.transarc.com/
Http://www.computer.org/pubs/expert/1997/trends/x1008/mauldin.htm
El efecto del uso del teléfono celular sobre la atención del conductor
Http://www.webfirst.com/aaa/text/cell/cell0toc.htm
Yahoo! http://www.yahoo.com/
Actas de la Conferencia Internacional sobre la Teoría de Bases de Datos. Delphi, Grecia 1997.
[Bagdikian 97] Ben H. Bagdikian. El Monopolio de los Medios. 5ª Edición. Editorial: Beacon, ISBN:
0807061557
Y datos científicos.
Por ejemplo, en nuestro prototipo de motor de búsqueda uno de los mejores resultados para el
teléfono celular es "The Effect of
Uso del teléfono celular con la atención del conductor ", un estudio que explica con gran detalle
las distracciones y
Riesgo asociado con la conversación en un teléfono celular mientras se conduce. Este resultado de
búsqueda surgió primero porque
Los anuncios tendrían dificultad para justificar la página que nuestro sistema devolvió a sus
anunciantes pagadores. Para esto
Tipo de razón y experiencia histórica con otros medios [Bagdikian 83], esperamos que la
publicidad
Los motores de búsqueda financiados serán inherentemente sesgados hacia los anunciantes y
lejos de las necesidades del
Consumidores.
Puesto que es muy difícil incluso para los expertos evaluar los motores de búsqueda, el sesgo del
motor de búsqueda es particularmente
insidioso. Un buen ejemplo fue OpenText, que se informó que vendía a las empresas el derecho a
ser
Más insidioso que la publicidad, porque no está claro quién "merece" estar allí, y quién está
dispuesto a
Pagar dinero para ser incluido. Este modelo de negocio resultó en un alboroto, y OpenText ha
dejado de ser un
Motor de búsqueda viable. Pero es menos probable que el mercado tolere un sesgo menos
evidente. Por ejemplo, una búsqueda
Motor podría añadir un pequeño factor a los resultados de búsqueda de las empresas "amigables",
y restar un factor de
Resultados de los competidores. Este tipo de sesgo es muy difícil de detectar, pero podría
Efecto en el mercado. Además, los ingresos publicitarios suelen ser un incentivo para
Resultados de búsqueda de calidad. Por ejemplo, nos dimos cuenta de que un motor de búsqueda
importante no devolvería una gran compañía aérea
Cuando el nombre de la aerolínea fue dado como una consulta. Ocurrió que la aerolínea había
Caro, vinculado a la consulta que era su nombre. Un mejor motor de búsqueda no lo habría
requerido
Anuncio, y posiblemente resultó en la pérdida de los ingresos de la compañía aérea para el motor
de búsqueda. En general,
Se podría argumentar desde el punto de vista del consumidor que cuanto mejor sea el buscador,
menos
Los anuncios serán necesarios para que el consumidor encuentre lo que quiere. Por supuesto, esto
Publicidad apoyado modelo de negocio de los motores de búsqueda existentes. Sin embargo,
siempre habrá
Dinero de los anunciantes que quieren que un cliente cambie productos, o que tengan algo que
sea genuinamente
nuevo. Pero creemos que la cuestión de la publicidad causa suficientes incentivos mixtos que es
crucial tener un
9 Apéndice B: Escalabilidad
9. 1 Escalabilidad de Google
Hemos diseñado Google para ser escalable en el corto plazo a una meta de 100 millones de
páginas web. Tenemos
Acaba de recibir el disco y las máquinas para manejar aproximadamente esa cantidad. Todas las
partes que consumen mucho tiempo del
Sistema son paralelos y aproximadamente tiempo lineal. Estos incluyen cosas como los
rastreadores, indexadores y
Clasificadores También pensamos que la mayoría de las estructuras de datos tratarán con gracia la
expansión. Sin embargo,
En 100 millones de páginas web estaremos muy cerca de todo tipo de límites del sistema
operativo en la
Sistemas operativos comunes (actualmente se ejecutan en Solaris y Linux). Estos incluyen cosas
como
sistema.
9.2 Escalabilidad de las arquitecturas de indexación centralizadas
A medida que aumentan las capacidades de los ordenadores, es posible indexar una gran cantidad
de texto para
costo razonable. Por supuesto, es probable que otros medios de mayor uso de ancho de banda,
como el video, se conviertan en
Más penetrante. Pero, como el costo de producción del texto es bajo comparado con los medios
como el video, el texto es
Es probable que siga siendo muy penetrante. También, es probable que pronto tendremos
reconocimiento del habla que haga un
Trabajo razonable que convierte el discurso en texto, ampliando la cantidad de texto disponible.
Todo esto proporciona
Índice que todo el mundo en los EE.UU. ha escrito durante un año. Asumimos que hay 250
millones de personas
En los Estados Unidos y escriben un promedio de 10k por día. Eso supone unos 850 terabytes.
también
Suponer que la indexación de un terabyte se puede hacer ahora por un costo razonable. También
suponemos que la
Los métodos de indexación utilizados sobre el texto son lineales o casi lineales en su complejidad.
Dado todo esto
Podemos calcular cuánto tiempo nos llevaría antes de poder indexar nuestros 850 terabytes
Costo razonable asumiendo ciertos factores de crecimiento. La Ley de Moore se definió en 1965
como una duplicación
18 meses en potencia del procesador. Ha sido notablemente cierto, no sólo para los procesadores,
sino para otros
Parámetros importantes del sistema, como el disco también. Si asumimos que la ley de Moore es
válida para el futuro,
Solo necesitamos 10 duplicaciones más, o 15 años para alcanzar nuestro objetivo de indexar todo
lo que
EE.UU. ha escrito durante un año por un precio que una pequeña empresa podía permitirse. Por
supuesto, los expertos en hardware son
La Ley de Moore no puede seguir manteniéndose durante los próximos 15 años, pero
Ejemplo hipotético.
Por supuesto, sistemas distribuidos como Gloss [Gravano 94] o Harvest serán a menudo los
sistemas más eficientes y
Elegante solución técnica para la indexación, pero parece difícil convencer al mundo de utilizar
estos sistemas
Es muy probable que la reducción drástica del costo de administración sea posible. Si eso sucede, y
todo el mundo
Debido a que los seres humanos sólo pueden escribir o hablar una cantidad finita, y como las
computadoras continúan mejorando, el texto
La indexación se escalará aún mejor de lo que lo hace ahora. Por supuesto, podría haber una
cantidad infinita de máquina
útil. Así que estamos optimistas de que nuestra arquitectura centralizada de motores de búsqueda
web mejorará en su
Capacidad de cubrir la información de texto pertinente en el tiempo y que hay un futuro brillante
para la búsqueda.