Упоминание пользователя / система кеширования тегов

Я пытаюсь реализовать классику user mention функциональность в нашей системе (например, набор текста @s немедленно покажет всем лицам, чье имя начинается с s).

Основная проблема заключается в том, что будет большое количество пользователей, которые будут потенциальным результатом поиска, а сама функциональность должна быть максимально быстрой. Из-за этого я cache результаты, но я не уверен, что это самый эффективный способ сделать это.

Что именно должно быть key каждого cache результат? Потому что каждый пользователь будет иметь разные результаты для одного и того же текста поиска на основе его permissions (внутри определенной группы, глобально или что-то еще). Другая проблема связана с дублированием между пользователями, которые ищут одно и то же ключевое слово (хотя я думаю, что это нормально из-за требований к разрешению), а также, например, одним и тем же пользователем, который ищет @s, @st, @ste - все это будет иметь cached пользователь Steven (и, возможно, многие другие), которые могут вызвать много дубликатов в кеше.

Существуют ли какие-либо темы, алгоритмы, блоги или что-нибудь, что может помочь мне с этой проблемой?

0 ответов

Другие вопросы по тегам