Приоритизация новостной ленты с использованием Elasticsearch и Spring Data - PullRequest
0 голосов
/ 10 октября 2018

Я только начинаю работать с Elasticsearch и хочу реализовать приоритетную ленту новостей для пользователей, исходя из их интересов.

Я использую Spring Boot 2.0.5, Spring Data Elasticsearch 3.1.0 и Elasticsearch 6.4.2

Я загрузил несколько примеров новостных тем в Elasticsearch и реализовал метод репозитория findByKeywords, который возвращаеттемы, упорядоченные по дате создания.

То, что я хочу сейчас сделать, - это расставить приоритеты и оценить темы новостей дальше.Например:

  1. Пользователи оценивают свои интересы от 1 до 5. Интересы с более высоким рейтингом будут отображаться выше в ленте новостей.
  2. Темы с более высоким уровнем вовлеченности пользователей
  3. Какое устройство использует пользователь и т. Д.

Как лучше всего построить эту логику скоринга с Elasticsearch?В идеале я хотел бы, чтобы возвращаемые результаты были разбиты на страницы и упорядочены так, как метод findAll возвращает его результаты.

Кроме того, нужно ли мне отслеживать, какие элементы пользователь видел в последний раз, чтобы избежать необходимости повторного поиска всех новостей.

Любой совет будет высоко оценен.

1 Ответ

0 голосов
/ 18 октября 2018

То, что вы описываете, обычно является примером использования для многомерного решения OLAP.Для этого вам нужно денормализовать ваши данные.Добавьте все к одному индексу.Таким образом, вы можете фильтровать и сортировать, как вам нужно, без ограничений.Таким образом, вы жертвуете пространством для удобства использования.

Удачи!

...