Почему Google намного быстрее, чем поиск на жестком диске?

При поиске файла на моем HD в Windows 7 или Windows XP требуется несколько минут для завершения процесса. Если я заполню поисковый запрос в Google, ответ будет на моем экране в миллисекундах

Как Google может искать в Интернете, который во много раз больше моего жесткого диска, быстрее, чем моя ОС может искать мой компьютер? Это только вопрос вычислительной мощности и правильного алгоритма?

247 голосов | спросил Arne 3 PMpWed, 03 Apr 2013 22:44:59 +040044Wednesday 2013, 22:44:59

10 ответов


210

Google не ищет в Интернете: он ищет индекс. У Google огромные серверные фермы, которые постоянно сканируют и индексируют Интернет. Этот процесс занимает много времени, точно так же, как поиск вашего неиндексированного жесткого диска. В Windows 7 есть возможность индексировать ваши жесткие диски. Сначала этот процесс занимает некоторое время, но как только он будет запущен, результаты поиска будут мгновенными.

Если вы хотите узнать больше о том, как работает поиск Google, вы можете прочитать статью Google « How Search Works "или прочитайте статью" Как работает материал: как работает Google ».

ответил Simon 3 PMpWed, 03 Apr 2013 22:53:39 +040053Wednesday 2013, 22:53:39
71

Google похож на поиск желтых страниц для адреса (с индексом). Поиск в Windows сродни движению вокруг проверочных номеров в зданиях (без индексирования).

Другая аналогия - это поиск хорошо организованной библиотеки и карточного каталога или просто сортировка по неорганизованной кучке книг каждый раз.

В принципе, это все организационные работы, выполненные до поиска, что делает его быстрым.

FYI: при поиске индексированных местоположений поиск в окнах может быть таким же отзывчивым.

ответил Ryan 4 AMpThu, 04 Apr 2013 01:09:28 +040009Thursday 2013, 01:09:28
36

Бизнес Google - это поиск (и обслуживание рекламных объявлений), и это очень сфокусировано на этом. Есть много вещей, которые Google делает для обеспечения быстрого возврата данных:

  • Сначала он использует MapReduce и PageRank для создания всеобъемлющего индекса Всемирной паутины. Он регулярно обновляет эту информацию, чтобы результаты были свежими.
  • Этот индекс распространяется и реплицируется на многих серверах Google.
  • Ваш запрос разбит на несколько серверов для построения возвращенных результатов. Это позволяет высокопараллелизовать процесс.
  • Общие запросы и результаты кэшируются, что уменьшает необходимость выполнять поиск вообще.

См. эту ссылку для получения дополнительной информации о Как работает поиск

Сравнительно поиск на жестком диске без индекса должен считывать каждый файл на диске, и это может занять много времени.

Кроме того, вы можете представить как файловую систему, так и индекс как дерево. В файловой системе корень дерева является папкой верхнего уровня, и он может иметь ветви (папки) или листья (файлы) в этой папке. Каждая ветка может иметь дочерние ветви для большего количества папок и оставляет для большего количества файлов. Чтобы выполнить поиск в этой структуре, вам нужно «пройти» все ветки (и подсечки), чтобы найти лист, который вы ищете. Индекс переворачивает эту иерархию. База становится алфавитом, а все подсекции - дополнительными уточнениями на этом. Листья - это местоположение предмета, который вы ищете. Поиск этой структуры позволяет обрезать (исключать) большие части дерева (например, первая буква вашего поискового запроса позволяет сразу же обрезать 25 других ветвей).

ответил Brad Patton 4 AMpThu, 04 Apr 2013 00:44:49 +040044Thursday 2013, 00:44:49
30

Около 4 лет назад я также задал себе тот же вопрос. Но по мере того, как я искал свою работу, я в конце концов читал, что помимо того, что они нанимают лучших из лучших, чтобы придумать некоторые из самых сложных алгоритмов поиска и все это.

Один из ключевых проектов, которые они использовали, похож на идею сокращения карты, я думаю. У вас много дешевых компьютеров на фермах. Пусть эти компьютеры имеют около 80 гигабайт свободного места на жестком диске и нажимают на них примерно на 16 гигабайт или даже лучше 32 гигабайта на этих компьютерах (насколько это возможно). Помните, что они связаны через сложную систему, которую они разработали. Но основная идея здесь заключается в том, что когда запрос отправляется, он передается в их систему, где он будет пытаться искать новые данные в ОЗУ. Имейте в виду, что у них много таких дешевых компьютеров. А поскольку данные находятся в ОЗУ, это обнаруживается намного быстрее, чем на жестком диске. Но не забывайте, что у них есть сложная (индексирующая и все эти алгоритмы) система, которая очень помогает.

И эти данные не обязательно должны быть свежими, потому что все мы знаем, что Google хранит все. Что касается того, что должно быть в ОЗУ, можно использовать тот же принцип, что и в splay деревьях, сохранить то, что когда-либо люди ищут больше всего в ОЗУ, и очистить наименее искаженный материал до жесткого диска.

Эта небольшая идея в сочетании с их индексацией и другими вещами, упомянутыми другими в ответах, может быть одной из причин, по которой она быстрее, чем поиск на жестком диске.

  • Возможность прогнозирования на основе других поисковых запросов.
  • Данные, скорее всего, будут в оперативной памяти, о которых мы все знаем быстрее.
  • Использование нескольких систем для разделения и покорения
  • Поиск - это их главный приоритет.

Конечно, я мог ошибаться, но это имело смысл для меня. И я был доволен тем, что узнал.

ответил Touch 4 AMpThu, 04 Apr 2013 02:57:54 +040057Thursday 2013, 02:57:54
20

Google использует чрезвычайно сложную систему индексирования, параллельные операции и ряд методов балансировки нагрузки, недоступных для стандартного автономного компьютера. существует очень мало сходства между поиском в Интернете и поиском файлов на жестком диске, а google оптимизирует их для конкретных случаев использования.

ответил Frank Thomas 3 PMpWed, 03 Apr 2013 22:49:32 +040049Wednesday 2013, 22:49:32
4

В 2004 году некоторые сотрудники Google опубликовали документ: MapReduce , и с тех пор они улучшались в сотни раз.

Кроме того, они используют Файловая система Google (GFS) , которая представляет собой распределенную файловую систему типа Hadoop Distribud File System (HDFS) и чрезвычайно оптимизирована для их целей. Кроме того, насколько мне известно, GFS работает, возможно, на тысячу раз быстрее, чем HDFS .

ответил smttsp 4 AMpThu, 04 Apr 2013 10:49:58 +040049Thursday 2013, 10:49:58
2

Я думал, что добавлю к этому, поскольку у меня тоже был этот вопрос некоторое время назад, и я нашел эти отличные видеоролики, которые описывают, что делает Google на поверхности. Интересно смотреть.

Google на Youtube 1
Google on Youtube 2

Он идет немного глубже, но недостаточно глубоко, чтобы вы потерялись в техническом отношении.

Приветствия.

ответил Mogget 4 AMpThu, 04 Apr 2013 04:14:32 +040014Thursday 2013, 04:14:32
1

Просто добавив кое-что к замечательным ответам здесь. Google использует кеширование популярных поисковых фраз. Результаты этих поисков находятся в памяти. Поэтому, если вы ищете что-то, что много искалось, результаты будут отображаться почти сразу.

ответил Mellowcandle 8 AMpMon, 08 Apr 2013 10:34:10 +040034Monday 2013, 10:34:10
0

Чтобы ответить на вопрос об упрощенном уровне: представьте себе, что у вас есть учебник с индексом ключевого слова сзади.

Поиск жесткого диска (наивно, по крайней мере) похож на просмотр книги, по страницам, сканирование каждой строки на наличие ключевого слова.

Использование поисковой системы в Интернете похоже на поиск ключевого слова в индексе, а затем поворот непосредственно на номер страницы, который он дает.

В действительности, конечно, это намного сложнее, чем это. Например, вы обычно будете искать свой жесткий диск для разных видов информации, чем в Интернете. Но основная вещь, которую нужно убрать, заключается в том, что поисковая система использует индекс. Он уже прошел через «книгу», слово за словом, и он составил список этих слов вместе с тем, где их найти, и он организовал список таким образом, чтобы он мог быстро находить вещи в нем .

Например, подумайте об организации индекса в книге. Во-первых, он обычно сортируется в алфавитном порядке, а во-вторых, он может иметь заголовки букв. Когда вы посмотрите слово в индексе, вы сразу увидите список слов, начинающихся с буквы, которую вы хотите. И поскольку список сортируется, легко найти нужное слово в списке или быстро рассказать, если он отсутствует.

Итак, чтобы подвести итог, это похоже на то, что на вашем жестком диске есть книга, в то время как поисковая система имеет индекс. Хотя, как указывали некоторые другие, можно использовать программное обеспечение для индексации вашего жесткого диска, а затем вы можете использовать индекс вместо всего этого.

ответил mwfearnley 7 AMpSun, 07 Apr 2013 08:09:17 +040009Sunday 2013, 08:09:17
-1

Я предполагаю, что одной из причин появления Google Auto Complete и использования AJAX была проблема скорости. Теперь, когда вы печатаете, слова отправляются в фоновом режиме, поэтому Google может выполнять часть работы, пока вы еще не закончили. Также индексы основаны на нескольких комбинациях слов (которые вы можете найти в качестве предложений в нижней части страницы). В настоящее время скорость сети выше, чем у жестких дисков, и, вероятно, многие из этих индексов находятся в ОЗУ серверов на своей ферме.

ответил Xaqron 6 PMpSat, 06 Apr 2013 22:49:02 +040049Saturday 2013, 22:49:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132