Как устроены поисковые...

17
СтуДень, Москва, 1 апреля 2010 Как устроены поисковые системы Анатолий Орлов Руковожу разработкой поиска

Transcript of Как устроены поисковые...

Page 1: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

СтуДень, Москва, 1 апреля 2010

Как устроены поисковые системы

Анатолий ОрловРуковожу разработкой поиска

Page 2: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Вопрос для разминки

Почему поиск файла на моем компьютере занимает 10-20

секунд, а поиск по содержимомувсех документов во всем

интернете меньше секунды?

Page 3: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Заранее подготовленные данные

Примеры:

• Телефонный справочник

• Каталог библиотеки

• Предметный указатель в книге

Page 4: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Кошмар телефониста

+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

рабочих дня.

Page 5: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Кошмар библиотекаря

Я думаю вам стоит начать с северной части

библиотеки. Вы не забыли взять спальный мешок и запас воды и

пищи на неделю?

Page 6: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Предметный указатель

Б• Бармаглот, 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

Page 7: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Поисковый индекс

• Заранее подготовленные данные для поисковой машины

• Все слова, не только спец термины

• Все упоминания слов

• Номера предложений/слов

• Служебная информация

Page 8: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Как мы ищем по индексу“Летит ужасный Бармаглот и пылкает огнем”

и: 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

Page 9: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Поисковый сервер

Page 10: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Поисковый кластер

“Базовый поиск” x NNN

“Метапоиск”

Page 11: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Реплики и Дата центры

• Чем больше машин, тем чаще одна из них ломается

• Потеря машины -> недоступность данных на ней

• Каждую машину надо дублироватьразмножить aka реплицировать

• Репликация помогает бороться с нагрузкой

• Репликация между разными дата-центрамипозволяет их терять

Page 12: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

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

Page 13: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Откуда берется индекс

• Большой робот~9B страницВ среднем переобходим раз в 2 неделиНовая база выкладывается раз в 2-3 дня

• Быстрый/Realtime роботСущественно меньше страницДля особо важных 5-7 минутДля остальных 1-2 часа

Page 14: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Робот

Интернет

Паук Паук Паук

Быстрый роботБольшой робот

метапоиски

Балансировщик нагрузки

Базовые поиски

Быстрые поиски

Пользователь

Page 15: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

Робот – это сложно• Сделать телефонный справочник очень

просто

• Сделать робот сложнее– Интернет бесконечный, но в среднем в нем

мусор и очень большое дублирование

– Сайты быстро меняются и являются активной сущностью

– Многие сайты не хотят, чтобы их обходили

– Много сайтов целенаправленно пытаются обмануть робота

Page 16: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

В жизни все сложнее…

• Нагрузка/ Кэширование / Несколько уровней поиска / Прюнинг / Параллельные поиски

• Сложный язык запросов / кворум / расстояния / ранжирование / морфология / регионализация

• Антиспам / Выбор документов для обхода

Page 17: Как устроены поисковые системыcache-ash03.cdn.yandex.net/download.yandex.ru/... · СтуДень, Москва, 1 апреля 2010 Как устроены

?

Анатолий Орлов