Когда я ищу файл на своем HD в Windows 7 или Windows XP, процесс занимает несколько минут. Если я введу поисковый запрос в Google, ответ появится на моем экране в миллисекундах
Как Google может осуществлять поиск в Интернете, который во много раз больше моего жесткого диска, быстрее, чем моя ОС может выполнять поиск на моем компьютере? Это только вопрос вычислительной мощности и правильного алгоритма?
Ответы:
Google не ищет в Интернете: он ищет в индексе. У Google есть огромные фермы серверов, которые постоянно сканируют и индексируют Интернет. Этот процесс занимает много времени, так же как поиск вашего неиндексированного жесткого диска. В Windows 7 есть возможность индексировать ваши жесткие диски. Поначалу этот процесс занимает некоторое время, но после его запуска результаты поиска будут мгновенными.
Если вы хотите узнать больше о том, как работает поиск Google, вы можете прочитать статью Google « Как работает поиск » или статью « Как работает материал: как работает Google ».
источник
Google подобен поиску на желтых страницах адреса (проиндексирован). Поиск в Windows сродни проверке номеров на зданиях (не индексируется).
Другой аналогией будет просмотр хорошо организованной библиотеки и карточного каталога или просто сортировка неорганизованной стопки книг каждый раз.
По сути, это вся организационная работа, проделанная до поиска, которая делает его быстрым.
К вашему сведению: при поиске в индексированных местах поиск Windows может быть таким же отзывчивым.
источник
Google занимается поиском (и обслуживанием рекламы), и он очень сосредоточен на этом. Google делает несколько вещей, чтобы обеспечить очень быстрый возврат данных:
Смотрите эту ссылку для получения дополнительной информации о том, как работает поиск
Для сравнения, поиск по жесткому диску без индекса должен прочитать каждый файл на диске, и это может занять много времени.
Кроме того, вы можете рассматривать как файловую систему, так и индекс как дерево. В файловой системе корнем дерева является папка верхнего уровня, и в этой одной папке могут быть ветви (папки) или листья (файлы). Каждая ветвь может иметь подветви для большего количества папок и оставляет для большего количества файлов. Для поиска этой структуры вам нужно «пройтись» по всем ветвям (и подветвям), чтобы найти искомый лист. Индекс переворачивает эту иерархию. Основа становится алфавитом, и все его ответвления еще более уточняются. Листья - это местоположение предмета, который вы ищете. Поиск в этой структуре позволяет вам обрезать (исключить) большие участки дерева (например, первая буква вашего поискового запроса позволяет сразу обрезать 25 других ветвей).
источник
Около 4 лет назад я тоже задавал себе тот же вопрос. Но пока я гуглил, проводя исследования, я в конце концов прочитал об этом, кроме того факта, что они нанимают лучших из лучших, чтобы придумать некоторые из самых сложных алгоритмов поиска и все такое.
Я думаю, что один из ключевых дизайнов, которые они использовали, похож на идею уменьшения карты. У вас много дешевых компьютеров на фермах. Пусть на этих компьютерах будет всего около 80 гигабайт дискового пространства и настойчиво потребуется около 16 гигабайт оперативной памяти или даже лучше 32 гигабайт оперативной памяти на этих компьютерах (насколько это возможно). Помните, что они связаны через какую-то сложную систему, которую они разработали. Но ключевая идея здесь заключается в том, что при отправке запроса он передается в их систему, где он пытается найти свежие данные в оперативной памяти. Имейте в виду, у них много этих дешевых компьютеров. А поскольку данные находятся в оперативной памяти, они обнаруживаются намного быстрее, чем на жестком диске. Но не забывайте, что у них есть сложная система (индексация и все эти алгоритмы), которая очень помогает.
И эти данные не должны быть свежими, потому что мы все знаем, что Google хранит все. Что касается того, что должно быть в ОЗУ, можно использовать тот же принцип, что и для деревьев сплайнов: сохраняйте то, что люди ищут больше всего в ОЗУ, и записывайте наименее искомый материал на жесткий диск.
Эта небольшая идея в сочетании с их индексацией и всеми другими вещами, упомянутыми другими в их ответах, может быть одной из причин, почему это быстрее, чем поиск по жесткому диску.
Конечно, я могу ошибаться, но для меня это имело смысл. И я был счастлив с тем, что я узнал.
источник
Google использует чрезвычайно сложную систему индексации, параллельные операции и ряд методов балансировки нагрузки, недоступных для стандартного автономного компьютера. на самом деле очень мало общего между поиском по сети и поиском по жесткому диску, и Google сильно оптимизирует их для конкретных случаев использования.
источник
В 2004 году некоторые сотрудники Google опубликовали статью MapReduce, и с тех пор они улучшались в сотни раз.
Кроме того, они используют Google File System (GFS), которая является распределенной файловой системой, такой как Hadoop Distribud File System (HDFS), и чрезвычайно оптимизирована для своих целей. Также, насколько я знаю, GFS работает, может быть, в тысячи раз быстрее, чем HDFS .
источник
Я думал, что добавлю к этому, поскольку у меня тоже был этот вопрос некоторое время назад, и я нашел эти отличные видео, которые описывают то, что Google делает на поверхности. Интересно посмотреть.
Google на Youtube 1
Google на Youtube 2
Он идет немного глубже, но недостаточно глубоко, чтобы вы терялись в технических деталях.
Приветствия.
источник
Просто добавив что-то к замечательным ответам здесь. Google использует кеширование популярных поисковых фраз. Результаты этих поисков хранятся в памяти. Так что если вы ищете что-то, что искали много, результаты будут отображаться почти сразу.
источник
Чтобы ответить на вопрос упрощенно: представьте, что у вас есть учебник с указателем ключевых слов в конце.
Поиск на жестком диске (по крайней мере наивно) - это все равно, что пролистывать книгу, страницу за страницей, сканируя каждую строку на предмет совпадения вашего ключевого слова.
Использование поисковой системы в Интернете похоже на поиск ключевого слова в индексе, а затем переход непосредственно к номеру страницы, который он дает.
В действительности, конечно, это намного сложнее, чем это. Например, вы обычно будете искать на своем жестком диске информацию, отличную от Интернета. Но самое главное, что поисковая система использует индекс. Он уже прошел слово «книга» слово за словом и составил список этих слов вместе с тем, где их найти, и организовал этот список таким образом, что он может очень быстро находить в нем информацию. ,
Например, подумайте об организации указателя в книге. Во-первых, он обычно сортируется по алфавиту, а во-вторых, он может иметь буквенные заголовки. Когда вы ищите слово в индексе, вы сразу видите список слов, начинающихся с буквы, которую вы хотите. А поскольку список отсортирован, легко найти нужное слово в списке или быстро определить, отсутствует ли оно.
Подводя итог, можно сказать, что на вашем жестком диске есть книга, а поисковая система имеет индекс. Хотя, как отмечали некоторые другие, для индексирования вашего жесткого диска можно использовать программное обеспечение, а затем вы можете использовать индекс вместо всего этого.
источник
Я думаю, что одной из причин появления
Auto Complete
и использования GoogleAJAX
была проблема со скоростью. Теперь, когда вы печатаете, слова отправляются в фоновом режиме, поэтому Google может выполнять часть работы, пока вы еще не закончили. Также индексы основаны на нескольких словосочетаниях (которые вы можете найти в качестве подсказок внизу страницы). В настоящее время скорость сети выше, чем у жестких дисков, и, вероятно, многие из этих индексов находятся в оперативной памяти серверов их фермы.источник