[#] [Перевод] Как Discord индексирует миллиарды сообщений
habrabot(difrex,1) — All
2017-03-27 13:30:04


![][1]

[Миллионы пользователей ежемесячно отправляют миллиарды сообщений в Discord][2]. Поиск в этих сообщениях стал [одной из самых востребованных функций][3], какие мы сделали. _Да будет поиск!_


# Требования


* **Экономически эффективный:** Основное взаимодействие пользователя с Discord — это наш текстовый и голосовой чат. Поиск — вспомогательная функция, и стоимость инфраструктуры должна отражать это. В идеале это значит, что поиск не должен стоить дороже, чем фактическое хранение сообщений.
* **Быстрый и интуитивно понятный:** Все создаваемые нами функции должны быть быстрыми и интуитивными, в том числе поиск. Он должен выглядеть и ощущаться по высшему стандарту.
* **Самовосстановление:** У нас нет отдела DevOps (пока), так что поиск должен выдерживать сбои с минимальным человеческим вмешательством или вообще без него.
* **Линейно масштабируемый:** Как и с хранением сообщений, увеличение ёмкости поисковой инфраструктуры [должно предусматривать добавление нодов][4].
* **Ленивая индексация:** Не все пользуются поиском — мы не должны индексировать сообщения, пока кто-то не попытается хотя бы раз их найти. Вдобавок, после сбоя индекса должна быть возможность переиндексации серверов на лету.[Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/d88/dd7/f7d/d88dd7f7d1ef3c461a37c1d14998685d.png
[2]: https://habrahabr.ru/post/323694/
[3]: https://feedback.discordapp.com/forums/326712-discord-dream-land/suggestions/10313166-add-a-search-function-ctrl-f
[4]: https://blog.discordapp.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7#805e
[5]: https://habrahabr.ru/post/324902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut