使用 Elasticsearch 和 Spring Data 确定新闻源的优先级



我刚刚开始使用 Elasticsearch,并希望根据用户的兴趣为用户实现优先新闻源。

我正在使用Spring Boot 2.0.5,Spring Data Elasticsearch 3.1.0和Elasticsearch 6.4.2

我已经将一些示例新闻主题加载到Elasticsearch中,并实现了一个findByKeywords repository方法,该方法返回按创建日期排序的主题。

我现在想做的是进一步确定新闻主题的优先级和评分。例如:

  1. 用户对他们的兴趣进行评分从 1 到 5。评级较高的兴趣将在新闻提要中显示得更高。
  2. 用户参与度较高的主题
  3. 用户正在使用的设备 等。

使用 Elasticsearch 构建此评分逻辑的最佳方法是什么?理想情况下,我希望返回的结果像 findAll 方法返回其结果一样进行分页和排序。

此外,我是否需要跟踪用户上次看到的项目,以防止再次搜索所有新闻项目。

任何建议将不胜感激。

您描述的内容通常是多维 OLAP 解决方案的用例。要使用 elastic 执行此操作,您需要对数据进行非规范化。将所有内容添加到一个索引。通过这种方式,您可以根据需要进行过滤和排序,而不会产生限制。这样,您就可以牺牲空间来获得可用性。

祝你好运!

最新更新