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

Preview:

Citation preview

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

системы*

Александр СадовскийРуководитель отдела веб-поиска

СтуДень, Новосибирск, 24 сентября 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

З• Зелюк, 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

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

Б• Бармаглот, 196, 198, 217 • Брандашмыг , 15, 18, 317

В• Варкаться , 2, 18, 39

З• Зелюк, 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, 1515

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

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

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

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

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

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

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

и: 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 часа

Робот

Интернет

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

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

метапоиски

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

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

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

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

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

просто.

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

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

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

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

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

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

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

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

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

?

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

Recommended