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


Cuando busco un archivo en mi HD en Windows 7 o Windows XP, demora algunos minutos en finalizar el proceso. Si completé 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 SO puede buscar en mi computadora? ¿Es solo una cuestión de poder de cálculo y el algoritmo correcto?


247


origen


¿Has intentado indexar todos los archivos en tu disco y buscar solo el índice? Tratar Todo y ver. - Karan
El escritorio de Google "usado" para hacer eso también para Windows ... - rogerdpack
Google busca a través de índices almacenados en la memoria RAM, no a través de archivos en un disco duro. - Ari
El índice es importante, pero Google también usa un algoritmo de reducción de mapas para llevar a cabo un conjunto de operaciones masivamente paralelo. No importa cuántos núcleos tenga en su computadora, le garantizo que Google tiene más. - Adam Wuerl
No hay nada que impida que una implementación de búsqueda de 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ápidos que el que usa; d) muchos ingenieros muy inteligentes para optimizar los algoritmos involucrados. (Por ejemplo, almacenar en caché los resultados de (muchas) consultas de uso frecuente y mucho más.) No es "solo" una cuestión de ninguna de estas, sino que todas actúan en concierto. - millimoose


Respuestas:


Google no está buscando en Internet: está buscando un índice. Google tiene enormes granjas de servidores que escanean e indexan constantemente 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é funcionando, los resultados de una búsqueda serán instantáneos.

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


210



Ultimo parrafo: este enlace es mucho más autoritario y en general mejor. - ulidtko
Disculpe mi curiosidad, pero no lo haga sistemas de archivos ya indexar 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, tenemos que hacer aún más ¿indexación? - Adi
@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 le 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 un "automóvil" podría encontrar resultados con la palabra "automóvil". - Simon
@Adnan, el sistema de archivos no es realmente un "índice", solo un árbol de nombres de archivos. La búsqueda de dicho árbol no es rápida, 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 una entrada particular sea muy rápida. Incluso entonces, no todas las búsquedas se pueden beneficiar de dicho índice y serán lentas (er). - PiRX
@Adnan En cierto sentido, el árbol FS está optimizado en contra buscando. 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. Todos los directorios solo conocen los archivos que contiene y los directorios que se encuentran debajo. Acceder a un archivo de ruta conocido es muy rápido en este contexto 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


Google es como buscar en las páginas amarillas una dirección (indexada). La búsqueda de Windows es similar a controlar los números en los 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 buscar en una pila desorganizada de libros cada vez.

Fundamentalmente, todo el trabajo organizativo realizado antes de la búsqueda lo hace rápido.

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


71



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


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

  • Primero usa Mapa reducido y Rango de página para generar un índice completo de la World Wide Web. Actualiza esto regularmente para que los resultados sean recientes.
  • 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 paralelizado.
  • Las consultas comunes y los resultados se almacenan en caché, lo que reduce la necesidad de realizar la búsqueda.

Vea este enlace para más información sobre Cómo funciona la búsqueda

Comparativamente, una búsqueda en el disco duro sin un índice tiene que leer todos los archivos 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 única carpeta. Cada rama puede tener subdivisiones para más carpetas y hojas para más archivos. Para buscar en esta estructura, debe "recorrer" todas las ramas (y las subdivisiones) para encontrar la hoja que está buscando. Un índice voltea esta jerarquía. La base se convierte en el alfabeto y todas las subdivisiones refinanzas adicionales en esto. Las hojas son la ubicación del artículo que estás 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).


36





Hace aproximadamente 4 años también me hice la misma pregunta. Pero mientras buscaba en Google haciendo mi investigación, finalmente leí eso, además del hecho de que contratan lo mejor de lo mejor para encontrar algunos de los algoritmos de búsqueda más sofisticados y todo eso.

Uno de los diseños clave que utilizaron es similar a la idea de reducir mapas, creo. Tienes muchas computadoras baratas en las granjas. Permita que estas computadoras tengan aproximadamente 80 gigas de espacio en el disco duro y empuje duro para tener alrededor de 16 gigas de RAM o incluso 32 gigas 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ía en un disco duro. Pero no olvide que también tienen un sistema sofisticado (indexación y todos esos algoritmos) que lo ayudan enormemente.

Y esta información no tiene que ser reciente, porque todos sabemos que Google almacena todo. En cuanto a lo que debería estar en la memoria RAM, se puede usar el mismo principio con los árboles splay, mantener lo que la gente busca más en la memoria RAM y eliminar las cosas menos buscadas en el disco duro.

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

  • El poder de predecir en base a otras búsquedas.
  • Es muy probable que los datos estén en RAM, que todos sabemos que es más rápido.
  • Usa múltiples sistemas para divide y conquistaras
  • 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í.


30



Lo apuntaste a algunas de las cosas que los otros carteles más populares echaron de menos. Google no busca todo tan a menudo. 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 está sucediendo en tiempo real, solo una copia rápida y la visualización de resultados de búsqueda que Google ya produjo y organizó en los últimos meses. Es extremadamente complicado describir el proceso de producción / organización, pero puede llamarse vagamente "indización" como alguien dijo. - Joseph Myers
Es extremadamente complicado describir el proceso de producción / organización .... Sí, eso es a lo que me refiero como la parte sofisticada de eso. Pulgares arriba, lo resumiste bien. - Touch
@JosephMyers indexa constantemente en google. Haga una búsqueda sobre una pregunta hecha en SuperUser más temprano en el día (ej. google.com/search?q=google+faster+than+a+hard+drive) y aparece en los resultados. - Brad Patton
@Touch Acepto las búsquedas en la memoria RAM. Este fue el cuarto punto en mi publicación sobre el almacenamiento en caché - Brad Patton
@Brad Patton es cierto. Tuve 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 usted 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 buena idea indexarlo con más frecuencia. Es por eso que aparece. Si no fuera por eso, tendrías que esperar un día o dos antes de que aparezca lo que buscas. Creo que eso es lo que el Sr. JosephMyers está diciendo. - Touch


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


20





En 2004, algunos empleados de Google publicaron un artículo: Mapa reducido y desde ese momento en adelante mejoraron eso cientos de veces.

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


4





Pensé que me gustaría añadir a esto ya que también tuve esta pregunta hace un tiempo y encontré estos excelentes videos que describen lo que hace Google 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.

Aclamaciones.


2





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


1





Para responder a 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 (ingenuamente, al menos) es como recorrer el libro, página por página, escaneando cada línea en busca de una ocurrencia de su 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 le da.

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 usa un índice. Ya ha pasado por 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 decir rápidamente si falta.

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


0





Creo que una de las razones por las que Google surgió Auto Complete y usado AJAX fue un problema de velocidad. Ahora, cuando escribe, las palabras se envían en segundo plano para que Google pueda hacer una parte del trabajo mientras todavía no ha terminado. Además, los índices se basan en combinaciones de palabras múltiples (que puede encontrar como sugerencias en la parte inferior de la página). Actualmente, la velocidad de la red es más alta que la de los discos duros y probablemente muchos de esos índices residen en la RAM de los servidores de su granja.


-1