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?
Respuestas:
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 ".
fuente
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.
fuente
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:
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).
fuente
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.
Por supuesto que podría estar equivocado, pero esto tenía sentido para mí. Y estaba feliz con lo que aprendí.
fuente
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.
fuente
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 .
fuente
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.
fuente
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.
fuente
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.
fuente
Creo que una de las razones por las que Google surgió
Auto Complete
y usóAJAX
fue 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.fuente