Upload
codefest
View
335
Download
1
Embed Size (px)
Citation preview
Полнотекстовый поиск в Почте
Mail.ru
Дмитрий Калугин-Балашов, Руководитель группы разработки
Общая схема
Поисковый демон
Почтовый демон
Перлячка Браузер
Токенизация
Токенизация
Токенизация
Токенизация
Токенизация
Токенизация
Токенизация
/var/mail/vdomains/mail.ru/…
Токенизация
/var/mail/vdomains/mail.ru/…
Токенизация
/var/mail/vdomains/mail.ru/…
Snapshot (Обратный индекс)
Word Offset
Word Offset
… …
Word Offset
NULL NULL
N DocID Zone DocID Zone … DocID Zone
Snapshot (Обратный индекс)
Word Offset
Word Offset
… …
Word Offset
NULL NULL
N DocID Zone DocID Zone … DocID Zone
Meta0 Meta1 … Meta255
XLog (Бинарный лог)
Transaction Transaction … Transaction
Header Command Command … Command
CMD_WORDS
Объединение результатов
Бинарный поиск по Snapshot Последовательный поиск по XLog
“U”
Merge, 20 Mb, 400 ms
Компактификация
Компактификация
qsort qsort qsort qsort
Компактификация
qsort qsort qsort qsort
Snapshot
Числовые зоны
DocID Offset
DocID Offset
… …
DocID Offset
NULL NULL
N NZ NZ … NZ
Фильтры
Date Folder IsRead
100000 10000 1000 100
Ранжирование
qsort()?
Обрезка
From Count
Текстовые зоны
Length TZ
Текстовые зоны
32 TZ
Текстовые зоны
1|1|30 TZ
Текстовые зоны
DocID Offset
DocID Offset
… …
DocID Offset
NULL NULL
N NZ NZ … NZ
И наконец…
XML/JSON
Спасибо за внимание!