Как Яндекс ищет ваши письма

Россия+7 (495) 960-65-87
Шрифт:
0 2605
Яндекс в своем блоге поведал аудитории о том, как устроен поиск по письмам в Яндекс.Почте. Оказывается, в индексе Яндекс.Почты хранится около 10 млрд. писем – это почти столько же, сколько страниц в индексе веб-поиска Яндекса. При этом поисковых запросов примерно в 1000 раз меньше, чем запросов к веб-поиску.

Отличительной особенностью поиска в Почте является то, что здесь очень важна полнота результатов: если веб-поиск не найдёт один-единственный сайт из трёх миллионов по запросу «пластиковые стулья», этого никто (кроме, разумеется, вебмастера этого сайта) не заметит. Гораздо критичнее, если потеряется письмо с важным адресом или паролем.

По этим причинам в поиске по Почте существует ряд архитектурных и технологических особенностей.

Архитектурные особенности: чтобы обеспечить полноту результатов, весь поисковый индекс для некоторого пользователя хранится на одном сервере и полностью дублируется на другом – если один сервер недоступен, то Яндекс ищет на дублирующем.

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

1-й вариант решения: Индекс размером до 10 Гб
Максимальный размер каждого индекса 10 Гб. Следовательно, на каждом сервере получилось по 50-100 индексов, которые создаются в порядке поступления писем, а данные пользователя, таким образом, могут находиться в любом из индексов. Но письма часто содержат большое количество однотипной информации («привет», «пока», «@yandex.ru»), которая подходит под 46% всех запросов к поиску по Почте. Получалось, что ответ на такой запрос требовал поднять около 20% всех писем, хранящихся на сервере — это занимало десятки секунд.

2-й вариант решения: Префиксный индекс
Мы оставили максимальный размер индекса равным 10Гб, но перед каждым словом добавили ID пользователя. В результате каждый поиск сразу ограничивался количеством и размером писем в почтовом ящике текущего пользователя. Это снизило объем находимых данных и на порядок ускорило поиск. Но когда на диске – сотни индексов, то из-за большого числа дисковых операций поиск занимает несколько секунд. Наша же цель – десятые доли секунд.

3-й вариант решения: Шардирование по пользователям
Все индексы на сервере были разделены на 1000 сегментов (шардов). В каждом из них – от пяти до двадцати индексов размером до 1 Гб, и данные конкретного пользователя всегда находятся в определённом сегменте. В результате число дисковых операций было снижено до 20 раз по сравнению со вторым вариантом. Скорость поиска также увеличилась в разы. Так мы получили поиск за доли секунд.

Также отмечается, что для того чтобы все поступающие письма практически сразу появлялись в результатах поиска, был разработан специальный инкрементальный индекс в памяти. В него можно добавлять по одному документу, а после добавления документ сразу появляется в поиске.
(Нет голосов)
Читайте нас в Telegram - digital_bar

Случилось что-то важное? Поделитесь новостью с редакцией.


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
    ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
    Рейтинг Известности 2018: старт народного голосования
    Михаил Р
    1
    комментарий
    0
    читателей
    Полный профиль
    Михаил Р - 1. Demis 2. кокс 3. Ашманов 4. Скобеев 5. Digital Strategy
    Тест: Кто как пробежал, или Итоги клиентского рейтинга SEOnews 2018
    Анна Макарова
    339
    комментариев
    0
    читателей
    Полный профиль
    Анна Макарова - Друзья, спасибо всем за участие! Мы определили победителей. Кто ими стал - вы найдете по ссылке: www.seonews.ru/events/darim-knigi-ot-mif-pobediteli-opredeleny/ Если вы стали одним из победителей, обязательно свяжитесь с нами по указанной в новости (по ссылке выше) почте. Всем хороших выходных! =)
    Рейтинг Известности 2018: второй этап народного голосования
    Константин Сокол
    3
    комментария
    0
    читателей
    Полный профиль
    Константин Сокол - Кто был ответственный за дизайн таблицы голосования? Копирайтер?
    Комплексный аудит интернет-магазина от «Ашманов и партнеры». Часть 1
    Александр Сова
    1
    комментарий
    0
    читателей
    Полный профиль
    Александр Сова - А вот и сеошники подъехали, покидать на вентилятор :D
    Кейс: вывод лендинга по изготовлению флагов на заказ в ТОП 1 по Санкт-Петербургу
    utka21
    5
    комментариев
    0
    читателей
    Полный профиль
    utka21 - Кейс как кейс. Для некоторых станет вполне возможно полезным. ( Для конкурентов точно) . А вот с комментариями , что то пошло не так )
    Как использовать Python для LSI-копирайтинга
    Evgeny Montana
    6
    комментариев
    0
    читателей
    Полный профиль
    Evgeny Montana - спасибо)
    Стартовал сбор заявок на участие в рейтинге «Известность бренда SEO-компаний 2018»
    Артем Первухин
    1
    комментарий
    0
    читателей
    Полный профиль
    Артем Первухин - Make KINETICA Great Again!
    BDD 2018: Как загнать сайт под фильтр без ПФ и ссылочного. Конкуренция в сложных нишах и методы защиты
    Гость
    1
    комментарий
    0
    читателей
    Полный профиль
    Гость - Какой там год) судя по этому "кейсу", чувак либо вообще не в теме, либо это делал кто то вместо него, но делал очень коряво
    Прощай, тИЦ! Яндекс переходит на новый показатель качества
    Дмитрий Кондратенко
    3
    комментария
    0
    читателей
    Полный профиль
    Дмитрий Кондратенко - PR уже год как отменили, ТИЦ пол года не обновляется... Вы или "не те книги читали", или Вас кинули ушлые СЕОшники... www.internet-reklama.pp.ua
    Расчет трафика из поисковых систем по брендовым и небрендовым запросам
    Дарья Калинская
    242
    комментария
    0
    читателей
    Полный профиль
    Дарья Калинская - А вот и статья :) www.seonews.ru/analytics/raschet-trafika-po-nebrendovym-zaprosam-pri-pomoshchi-r/
    ТОП КОММЕНТАТОРОВ
    Комментариев
    910
    Комментариев
    834
    Комментариев
    554
    Комментариев
    540
    Комментариев
    483
    Комментариев
    373
    Комментариев
    339
    Комментариев
    262
    Комментариев
    242
    Комментариев
    171
    Комментариев
    156
    Комментариев
    137
    Комментариев
    121
    Комментариев
    99
    Комментариев
    97
    Комментариев
    97
    Комментариев
    96
    Комментариев
    80
    Комментариев
    67
    Комментариев
    62
    Комментариев
    60
    Комментариев
    59
    Комментариев
    57
    Комментариев
    55
    Комментариев
    54

    Отправьте отзыв!
    Отправьте отзыв!