Your SlideShare is downloading. ×
0
Полнотекстовый поиск в Почте
Mail.Ru
Дмитрий Калугин-Балашов
Общая схема
Поисковый
демон
Перлячка

Почтовый
демон

Браузер
Токенизация

d.kalugin-balashov@corp.mail.ru
Токенизация

d.kalugin-balashov@corp.mail.ru
Токенизация

d.kalugin-balashov@corp.mail.ru
Токенизация

d.kalugin-balashov@corp.mail.ru
Токенизация

d.kalugin-balashov@corp.mail.ru
Токенизация
d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru
d.kalugin-balashov@corp.mail.ru d.kalugin-bala...
Токенизация

/var/mail/vdomains/mail.ru/A12/test
Токенизация

/var/mail/vdomains/mail.ru/A12/test
Токенизация

/var/mail/vdomains/mail.ru/A12/test
Токенизация

/var/mail/vdomains/mail.ru/A12/test
Токенизация

/var/mail/vdomains/mail.ru/A12/test
Токенизация

http://something.org/aaa/bbb?ccc=ddd#eee
Обратный индекс

Word

{ DocID, DocID, DocID }
Snapshot
Word
Word
…
Word
0

Словарь

Count

DocID

DocID

…

DocID

Offset
Offset
Offset
0
Snapshot

Словарь

Word
Word
…
Word
0

Offset
Offset
Offset
0
Count_0x00
Count_0x01

Snapshot
Мета-словарь

Count_0xFF
Словарь

Word
Word
…
Word
0

Offset
Offset
Offset
0
XLog
Transaction

DocID

Transaction

Length

CRC32

Transaction

Cmd

CMD_WORDS

…

Cmd

Transaction

…

Cmd
XLog

DocID

{ Word, Word, Word }
Поиск
Бинарный поиск
Snapshot

Линейный поиск
Merge (>20M, >200ms)

U

XLog
NZData
DocID
DocID
…
DocID
0

Offset
Offset
…
Offset
0

Count NZ

NZ

…

NZ
Числовые зоны
10000

1000
Filter

Range(Date)
IsRead
Flagged

250
Filter

Filter

25

100

100
Ranker

QSort(Date)

Limit
NZData
DocID
DocID
…
DocID
0

Offset
Offset
…
Offset
0

Count NZ

TZData

NZ

…

NZ

Count TZ

TZ

…
TZData
C Z Length Text

GZip/NoGZip
CP1251/UTF8
Общая схема
Query

B-Search (Snapshot)
Search (XLog)

Чтение из NZData

U

Чтение числовых зон (почтовый демон)
Filter 1
F...
Саджесты
Prefix
Prefix
Prefix
…
0

N

Count
Count
Count

Offset
NULL
Offset

0

0

Length Postfix

Count

…

Length Postfi...
Метрики качества
• Среднее время исполнения поискового запроса
• Количество поисковых запросов
• Количество пустых ответов...
Вопросы?
Дмитрий Калугин-Балашов
программист, Почта Mail.Ru
d.kalugin-balashov@corp.mail.ru
rvncerr@rvncerr.org
Upcoming SlideShare
Loading in...5
×

Дмитрий Калугин-Балашов, Mail.Ru

617

Published on

HighLoad++ 2013

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
617
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Дмитрий Калугин-Балашов, Mail.Ru"

  1. 1. Полнотекстовый поиск в Почте Mail.Ru Дмитрий Калугин-Балашов
  2. 2. Общая схема Поисковый демон Перлячка Почтовый демон Браузер
  3. 3. Токенизация d.kalugin-balashov@corp.mail.ru
  4. 4. Токенизация d.kalugin-balashov@corp.mail.ru
  5. 5. Токенизация d.kalugin-balashov@corp.mail.ru
  6. 6. Токенизация d.kalugin-balashov@corp.mail.ru
  7. 7. Токенизация d.kalugin-balashov@corp.mail.ru
  8. 8. Токенизация d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru d.kalugin-balashov@corp.mail.ru
  9. 9. Токенизация /var/mail/vdomains/mail.ru/A12/test
  10. 10. Токенизация /var/mail/vdomains/mail.ru/A12/test
  11. 11. Токенизация /var/mail/vdomains/mail.ru/A12/test
  12. 12. Токенизация /var/mail/vdomains/mail.ru/A12/test
  13. 13. Токенизация /var/mail/vdomains/mail.ru/A12/test
  14. 14. Токенизация http://something.org/aaa/bbb?ccc=ddd#eee
  15. 15. Обратный индекс Word { DocID, DocID, DocID }
  16. 16. Snapshot Word Word … Word 0 Словарь Count DocID DocID … DocID Offset Offset Offset 0
  17. 17. Snapshot Словарь Word Word … Word 0 Offset Offset Offset 0
  18. 18. Count_0x00 Count_0x01 Snapshot Мета-словарь Count_0xFF Словарь Word Word … Word 0 Offset Offset Offset 0
  19. 19. XLog Transaction DocID Transaction Length CRC32 Transaction Cmd CMD_WORDS … Cmd Transaction … Cmd
  20. 20. XLog DocID { Word, Word, Word }
  21. 21. Поиск Бинарный поиск Snapshot Линейный поиск Merge (>20M, >200ms) U XLog
  22. 22. NZData DocID DocID … DocID 0 Offset Offset … Offset 0 Count NZ NZ … NZ
  23. 23. Числовые зоны 10000 1000 Filter Range(Date) IsRead Flagged 250 Filter Filter 25 100 100 Ranker QSort(Date) Limit
  24. 24. NZData DocID DocID … DocID 0 Offset Offset … Offset 0 Count NZ TZData NZ … NZ Count TZ TZ …
  25. 25. TZData C Z Length Text GZip/NoGZip CP1251/UTF8
  26. 26. Общая схема Query B-Search (Snapshot) Search (XLog) Чтение из NZData U Чтение числовых зон (почтовый демон) Filter 1 Filter 2 Чтение из TZData Limit Ranker Filter N «Подсветка» слов Формирование XML-ответа
  27. 27. Саджесты Prefix Prefix Prefix … 0 N Count Count Count Offset NULL Offset 0 0 Length Postfix Count … Length Postfix Count
  28. 28. Метрики качества • Среднее время исполнения поискового запроса • Количество поисковых запросов • Количество пустых ответов • Количество переходов в письмо из результатов поиска • Количество повторных запросов • Количество перелистываний результатов • Среднее время перехода в письмо
  29. 29. Вопросы? Дмитрий Калугин-Балашов программист, Почта Mail.Ru d.kalugin-balashov@corp.mail.ru rvncerr@rvncerr.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×