Ну лучший подход для этого было бы
- Анализ поведения пользователя
- См которой все ключевые слова из его интересов
- Поддерживать один документ для каждого пользователя в другой индекс, которые имеют все эти ключевые слова.
- На поиски этого пользователя, повысить появление этих ключевых слов с помощью function_score query
- Вы можете использовать термины фильтр внутри функции повышающего для достижения this.Add функцию форсирования при функций в функции бальной запроса
- В terms filter, вы можете указать на этот документ пользователей и получить значения динамически
ключ
- Использовать пользовательский фильтр таким образом, что ключ кэша построен обыкновение съедать слишком много памяти
При таком подходе можно избежать многих путей кода в коде клиента ,