¿Por qué Google es mucho más rápido que una búsqueda de disco duro?


251

Cuando busco un archivo en mi HD en Windows 7 o Windows XP, me toma unos minutos terminar el proceso. Si completo un término de búsqueda en Google, la respuesta está en mi pantalla en milisegundos

¿Cómo es posible que Google busque en Internet, que es muchas veces más grande que mi disco duro, más rápido de lo que mi sistema operativo puede buscar en mi computadora? ¿Es solo una cuestión de potencia informática y el algoritmo correcto?


99
¿Has intentado indexar todos los archivos en tu disco y buscar solo el índice? Prueba todo y mira.
Karan

11
El escritorio de Google "solía" hacer eso también para Windows ...
rogerdpack

14
Google busca a través de índices almacenados en la RAM, no a través de archivos en un disco duro.
Ari

13
El índice es importante, pero Google también utiliza un algoritmo de reducción de mapas para llevar a cabo un conjunto de operaciones paralelas masivas. No importa cuántos núcleos tenga en su computadora, le garantizo que Google tiene más.
Adam Wuerl

41
No hay nada que impida que una implementación de búsqueda en el escritorio use indexación. Sin embargo , recuerde que Google tiene suficiente efectivo para a) muchas CPU / servidores muy rápidos para paralelizar una consulta; b) mucha RAM muy rápida para evitar tener que acceder a un disco; c) muchos discos duros mucho más rápido que el que usa; d) muchos ingenieros muy inteligentes para optimizar los algoritmos involucrados. (Por ejemplo, el almacenamiento en caché de los resultados de (muchas) consultas de uso frecuente y mucho, mucho más). No es "solo" una cuestión de ninguno de estos, sino que todos actúan en concierto.
millimoose

Respuestas:


211

Google no está buscando en Internet: está buscando un índice. Google tiene granjas de servidores enormes que constantemente escanean e indexan Internet. Este proceso lleva mucho tiempo, al igual que la búsqueda de su disco duro no indexado. En Windows 7, hay una opción para indexar sus discos duros. Este proceso lleva un tiempo al principio, pero una vez que esté en funcionamiento, los resultados de una búsqueda serán instantáneos.

Si desea obtener más información sobre cómo funciona la búsqueda de Google, puede leer el artículo de Google " Cómo funciona la búsqueda " o leer el artículo " Cómo funcionan las cosas: cómo funciona Google ".


46
Último párrafo: este enlace es mucho más autorizado y, en general, mejor.
ulidtko

44
Disculpe mi curiosidad, pero ¿ los sistemas de archivos ya no indexan los archivos en el disco? ¿No es lo que ve en su explorador de archivos un mero índice de enlaces a los sectores físicos reales en el disco? ¿Por qué, entonces, necesitamos hacer aún más indexación?
Adi

99
@Adnan el índice de sistemas de archivos está diseñado para encontrar la posición donde se almacena un archivo en un medio físico. Es como el índice de un libro que te dice en qué página comienza un capítulo. Un índice de búsqueda está diseñado para encontrar contenido. Un buen índice de búsqueda no solo indexa el nombre de un archivo, sino también el contenido de tipos de archivos conocidos como pdf, doc, html, ... Los índices avanzados también usan sinónimos, por lo que si busca "auto" también podría encontrar resultados con la palabra "automóvil".
Simon

3
@Adnan, el sistema de archivos no es realmente un "índice", solo un árbol de nombres de archivos. Buscar dicho árbol no es rápido, porque su estructura no está optimizada para la búsqueda. OTOH google (y bases de datos) utiliza estructuras de índice ordenadas específicas que hacen que la búsqueda de entradas particulares sea muy rápida. Incluso entonces, no todas las búsquedas pueden beneficiarse de dicho índice y serán lentas (er).
PiRX

8
@Adnan En cierto sentido, el árbol FS está optimizado contra la búsqueda. Está diseñado para permitir el direccionamiento de ubicaciones conocidas. Desde su nodo raíz, todo lo que obtiene es una lista de directorios y archivos en la raíz. Cada directorio solo conoce los archivos que contiene y los directorios que se encuentran debajo. Acceder a una ruta de archivo conocida es muy rápido, y ofrece mucha flexibilidad, pero no existe una lista global de archivos para buscar. Siempre debe descender a través del árbol de directorios, y eso genera muchas búsquedas distintas.
Phoshi

71

Google es como buscar una dirección en las páginas amarillas (indexada). La búsqueda de Windows es similar a conducir por números de cheques en edificios (no indexados).

Otra analogía sería mirar a través de una biblioteca bien organizada y un catálogo de tarjetas, o simplemente ordenar una pila desorganizada de libros cada vez.

Básicamente, es todo el trabajo organizativo realizado antes de la búsqueda lo que lo hace rápido.

FYI: Al buscar ubicaciones indexadas, la búsqueda de Windows puede ser igual de receptiva.


55
O: Escaneando un libro de texto versus mirando una tabla de contenido (detallada)
bobobobo

36

El negocio de Google es la búsqueda (y la publicación de anuncios) y está muy centrado en eso. Google hace varias cosas para garantizar que los datos le sean devueltos rápidamente:

  • Primero usa MapReduce y PageRank para generar un índice completo de la World Wide Web. Actualiza esto regularmente para que los resultados sean frescos.
  • Ese índice se distribuye y replica en los muchos servidores de Google.
  • Su consulta se divide en varios servidores para generar los resultados devueltos. Esto permite que el proceso sea altamente paralelo.
  • Las consultas y resultados comunes se almacenan en caché, lo que reduce la necesidad de realizar la búsqueda.

Consulte este enlace para obtener más información sobre cómo funciona la búsqueda

Comparativamente, una búsqueda de disco duro sin índice tiene que leer cada archivo en el disco y esto puede llevar mucho tiempo.

Además, puede pensar tanto en un sistema de archivos como en un índice como un árbol. En el sistema de archivos, la raíz del árbol es la carpeta de nivel superior y puede tener ramas (carpetas) u hojas (archivos) en esa carpeta. Cada rama puede tener sub-ramas para más carpetas y hojas para más archivos. Para buscar esta estructura, debe 'caminar' todas las ramas (y sub-ramas) para encontrar la hoja que está buscando. Un índice invierte esta jerarquía. La base se convierte en el alfabeto y todas las subramas refinanzas adicionales en esto. Las hojas son la ubicación del artículo que está buscando. La búsqueda de esta estructura le permite podar (excluir) grandes secciones de árbol (por ejemplo, la primera letra de su término de búsqueda le permite recortar otras 25 ramas de inmediato).


30

Hace unos 4 años también me hice la misma pregunta. Pero mientras buscaba en Google investigando, eventualmente leí eso además del hecho de que contratan a los mejores para crear algunos de los algoritmos de búsqueda más sofisticados y todo eso.

Creo que uno de los diseños clave que usaron es similar a la idea de reducción de mapas. Tienes muchas computadoras baratas en granjas. Deje que estas computadoras tengan solo alrededor de 80 gig de espacio en el disco duro y presione para tener aproximadamente 16 gig de RAM o incluso 32 gig de RAM en estas computadoras (tanto como sea posible). Recuerde que están conectados a través de algún sistema sofisticado que diseñaron. Pero la idea clave aquí es que cuando se envía una consulta, se pasa a su sistema donde intentará buscar los datos nuevos en la RAM. Tenga en cuenta que tienen muchas de estas computadoras baratas. Y dado que los datos están en RAM, se encuentran mucho más rápido de lo que serían en un disco duro. Pero no olvide que también tienen un sistema sofisticado (indexación y todos esos algoritmos) que ayudan mucho.

Y estos datos no tienen que ser nuevos, porque todos sabemos que Google almacena todo. En cuanto a lo que debería estar en la RAM, se puede usar el mismo principio con los árboles de separación, mantener lo que la gente está buscando más en la RAM y descargar las cosas menos buscadas en el disco duro.

Esta pequeña idea, junto con su indexación y todas las otras cosas que otros han mencionado en sus respuestas, podría ser una de las razones por las que es más rápida que una búsqueda de disco duro.

  • El poder de predecir en base a otras búsquedas.
  • Lo más probable es que los datos estén en la RAM, que todos sabemos es más rápido.
  • Usa múltiples sistemas para dividir y conquistar
  • La búsqueda es su principal prioridad.

Por supuesto que podría estar equivocado, pero esto tenía sentido para mí. Y estaba feliz con lo que aprendí.


77
Lo clavaste en algunas de las cosas que los otros carteles más populares se perdieron. Google no busca todo con tanta frecuencia. Definitivamente no en todo Internet, y ni siquiera todo en sus propios cachés. Además, cuando busca en Google.com, la búsqueda real no se realiza en tiempo real, solo una copia y visualización rápida de los resultados de búsqueda que Google ya ha producido y organizado en los últimos meses. Es extremadamente complicado describir el proceso de producción / organización, pero puede llamarse vagamente "indexación" como alguien dijo.
Joseph Myers

Es extremadamente complicado para describir el proceso de producción / organización ... . Sí, eso es a lo que me refiero como parte sofisticada. Pulgares arriba, lo resumiste bien.
Toque el

1
@JosephMyers google indexa constantemente. Haga una búsqueda en una pregunta formulada en SuperUser más temprano en el día (por ejemplo, google.com/search?q=google+faster+than+a+hard+drive ) y aparece en los resultados.
Brad Patton el

@ Touch Estoy de acuerdo con las búsquedas en RAM. Este fue el cuarto punto en mi publicación sobre el almacenamiento en caché
Brad Patton el

@Brad Patton Cierto. Tenía que mencionarlo porque era la base de lo que aprendí. Y la parte de indexar constantemente, bueno, la parte de indexación es una especie de parte organizadora. Por lo tanto, la declaración sostiene que busca lo que se ha organizado y no lo que se está indexando en este momento. En cuanto a por qué se muestra el resultado, stackoverflow tiene más credibilidad que muchos sitios web, por lo tanto, es una buena idea indexarlo con más frecuencia. Por eso aparece. Si no fuera por eso, tendría que esperar uno o dos días antes de que aparezca lo que busca. Creo que eso es lo que dice el Sr. JosephMyers.
Toque el

20

Google utiliza un sistema de indexación extremadamente sofisticado, operaciones paralelas y una serie de técnicas de equilibrio de carga que no están disponibles para una computadora independiente estándar. En realidad, existe muy poca similitud entre una búsqueda web y una búsqueda de archivos en el disco duro, y Google se optimiza mucho para sus casos de uso específicos.


4

En 2004, algunos empleados de Google publicaron un documento: MapReduce y desde entonces mejoraron eso cientos de veces.

Además, usan Google File System (GFS), que es un sistema de archivos distribuido como Hadoop Distribud File System (HDFS) y extremadamente optimizado para sus propósitos. Además, que yo sepa, GFS funciona quizás mil veces más rápido que HDFS .


2

Pensé en agregar a esto, ya que también tuve esta pregunta hace un tiempo y encontré estos excelentes videos que describen lo que Google hace en la superficie. Interesante de ver.

Google en Youtube 1
Google en Youtube 2

Él va un poco más profundo pero no lo suficientemente profundo como para perderse en tecnicismos.

Salud.


1

Solo agrego algo a las maravillosas respuestas aquí. Google utiliza el almacenamiento en caché de frases de búsqueda populares. Los resultados de estas búsquedas residen en una memoria. Entonces, si busca algo que se busca mucho, los resultados aparecerán casi de inmediato.


0

Para responder la pregunta en un nivel simplista: imagine que tiene un libro de texto con un índice de palabras clave en la parte posterior.

Buscar en un disco duro (al menos ingenuamente) es como revisar el libro, página por página, escaneando cada línea en busca de una palabra clave.

Usar un motor de búsqueda en Internet es como buscar la palabra clave en el índice y luego pasar directamente al número de página que proporciona.

En realidad, por supuesto, es mucho más complejo que esto. Por ejemplo, normalmente buscaría en su disco duro diferentes tipos de información que Internet. Pero lo básico es que el motor de búsqueda está usando un índice. Ya ha revisado el "libro", palabra por palabra, y ha compilado una lista de esas palabras junto con dónde encontrarlas, y ha organizado la lista de tal manera que puede buscar cosas en ella muy rápidamente. .

Por ejemplo, piense en la organización de un índice en un libro. En primer lugar, generalmente se ordena alfabéticamente y, en segundo lugar, puede tener encabezados de letras. Cuando busca una palabra en el índice, puede ver de inmediato la lista de palabras que comienzan con la letra que desea. Y debido a que la lista está ordenada, es fácil encontrar la palabra que desea dentro de la lista o saber rápidamente si falta.

Para resumir, es como si tu disco duro solo tuviera un libro, mientras que el motor de búsqueda tiene el índice. Aunque, como han señalado algunos otros, es posible usar un software para indexar su disco duro, y luego puede usar el índice en lugar de todo.


-1

Creo que una de las razones por las que Google surgió Auto Completey usó AJAXfue el problema de la velocidad. Ahora, cuando está escribiendo, las palabras se envían en segundo plano para que Google pueda hacer parte del trabajo mientras aún no haya terminado. Además, los índices se basan en múltiples combinaciones de palabras (que puede encontrar como sugerencias en la parte inferior de la página). Actualmente, la velocidad de la red es más alta que los discos duros y probablemente gran parte de esos índices reside en la RAM de los servidores de su granja.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.