@revbill
Новичок

Что из себя представляет поиск по диалогам в мессенджере?

Хотелось бы понять в общих чертах как устроен поиск по диалогам, который есть во всех популярных мессенджерах (ВК, telegram и т.п.).

Буду благодарен, если вы поделитесь известными вам ресурсами по данному вопросу (статьи, книги, конференции и т.п.)
  • Вопрос задан
  • 543 просмотра
Пригласить эксперта
Ответы на вопрос 4
@0x131315
Быстрый поиск всегда осуществляется по индексу - специально подготовленному набору данных, содержащему только ключевые для задачи поиска данные, в сжатом формате, и размеченные определенным образом для быстрого доступа к записи.
Индексы сегодня полностью обслуживают специальные поисковые движки, коих на рынке много. Велосипеды тут не нужны.
Индексов может быть много - так можно изолировать непересекающиеся наборы данных, и избежать больших "общих" индексов.
Если производительности одного сервера не хватает, применяют кластеры - поиск по индексам хорошо поддается кластеризации.
Чтобы обновлять индексы нужно периодически выполнять переиндексацию - вычитывать полный набор данных и заполнять ими индекс. Это очень тяжелый процесс, поэтому обычно его делают редко и в малонагруженное для сервиса время.
Чтобы можно было искать с учетом всяких прав и статусов сообщений, эти права и статусы сохраняются в тот же индекс как атрибуты, и участвуют в поисковом запросе. Так можно персонифицировать поиск.
Чтобы индексы работали как в реальном времени и соответствовали данным приложения, на приложение навешивают хуки: пользователь скрыл сообщение - сработал хук и переиндексировал только одно это сообщение, что практически не дает нагрузки.
Ответ написан
dimonchik2013
@dimonchik2013
совет, который уже дан - ничего не стоит
reindexer ( не нра что в памяти)
manticoresearch / sphinxsearch
тарантул
кликхаус
на крайняк эластик
Ответ написан
firedragon
@firedragon
Senior .NET developer
Поищите на хабре Vc как то освещали эту тему. Они даже что то создали и выложили в общий доступ
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Кстати, быстрый поиск в мессенджерах - это прекрасный индикатор того, что ваши сообщения не шифруются. Что бы ни говорили создатели этих мессенджеров
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы