Как устроены поисковые...
Transcript of Как устроены поисковые...
СтуДень, Москва, 1 апреля 2010
Как устроены поисковые системы
Анатолий ОрловРуковожу разработкой поиска
Вопрос для разминки
Почему поиск файла на моем компьютере занимает 10-20
секунд, а поиск по содержимомувсех документов во всем
интернете меньше секунды?
Заранее подготовленные данные
Примеры:
• Телефонный справочник
• Каталог библиотеки
• Предметный указатель в книге
Кошмар телефониста
+7-916-0000001 – Иванов Иван Иванович
+7-916-0000002 – Петров Андрей Викторович
+7-916-0000003 – Сидоров Дмитрий Иванович
+7-916-0000004 – …
+7-916-0000005 – …
+7-916-0000006 – …
+7-916-0000007 – …
+7-916-0000008 – …
+7-916-0000009 – …
Ваш запрос на поиск телефона “Иванова Виктора Петровича”принят. Пожалуйста перезвоните через 3
рабочих дня.
Кошмар библиотекаря
Я думаю вам стоит начать с северной части
библиотеки. Вы не забыли взять спальный мешок и запас воды и
пищи на неделю?
Предметный указатель
Б• Бармаглот, 196, 198, 217 • Брандашмыг , 15, 18, 317
В• Варкаться , 2, 18, 39
З• Зелюк, 3, 15, 47, 79, 115• Злопастность , 18, 45, 317М• Мова, 12, 16, 17• Мюмзик , 8, 18, 191
Н• Нава, 56
П• Пыряться, 77, 128
Р• Рымать , 14
С• Свирлепость, 195, 278
Х• Хливкость, 33, 135• Хрюкотать , 134, 156
Ш• Шорёк, 2, 4, 6, 8, 15
Поисковый индекс
• Заранее подготовленные данные для поисковой машины
• Все слова, не только спец термины
• Все упоминания слов
• Номера предложений/слов
• Служебная информация
Как мы ищем по индексу“Летит ужасный Бармаглот и пылкает огнем”
и: 1,2,3,4,5,6,7,8,9,…,391,392,393,…,100001,100002,…
пылкает: 10001, 27005, 60012, 112060 …
Слово Частота Документы
Летит 52.5M 32M
ужасный 80.3M 59M
Бармаглот 370K 118K
и 38.5B 2.5B
пылкает 11K 4.6K
огнем 124M 62M
Всего 4K
Поисковый сервер
Поисковый кластер
“Базовый поиск” x NNN
“Метапоиск”
Реплики и Дата центры
• Чем больше машин, тем чаще одна из них ломается
• Потеря машины -> недоступность данных на ней
• Каждую машину надо дублироватьразмножить aka реплицировать
• Репликация помогает бороться с нагрузкой
• Репликация между разными дата-центрамипозволяет их терять
www.yandex.ru
IP1 (77.88.21.3) IP2 (87.250.251.3) IP3 (93.158.134.3) IP4 (213.180.204.3)
метапоиски
Балансировщик нагрузки
Базовые поиски
Дата Центр #2
метапоиски
Балансировщик нагрузки
Базовые поиски
Дата Центр #1
метапоиски
Балансировщик нагрузки
Базовые поиски
Дата Центр #3
метапоиски
Балансировщик нагрузки
Базовые поиски
Дата Центр #4
Откуда берется индекс
• Большой робот~9B страницВ среднем переобходим раз в 2 неделиНовая база выкладывается раз в 2-3 дня
• Быстрый/Realtime роботСущественно меньше страницДля особо важных 5-7 минутДля остальных 1-2 часа
Робот
Интернет
Паук Паук Паук
Быстрый роботБольшой робот
метапоиски
Балансировщик нагрузки
Базовые поиски
Быстрые поиски
Пользователь
Робот – это сложно• Сделать телефонный справочник очень
просто
• Сделать робот сложнее– Интернет бесконечный, но в среднем в нем
мусор и очень большое дублирование
– Сайты быстро меняются и являются активной сущностью
– Многие сайты не хотят, чтобы их обходили
– Много сайтов целенаправленно пытаются обмануть робота
В жизни все сложнее…
• Нагрузка/ Кэширование / Несколько уровней поиска / Прюнинг / Параллельные поиски
• Сложный язык запросов / кворум / расстояния / ранжирование / морфология / регионализация
• Антиспам / Выбор документов для обхода
?
Анатолий Орлов