在Elasticsearch中基于每个用户行为的评分

时间:2015-02-18 07:49:13

标签: elasticsearch

我们通过分析他经常搜索的标签来了解用户的行为。 现在我们需要为这些用户提供更高优先级的标签。我想知道如何使用Elasticsearch以优雅的方式实现这一目标。

1 个答案:

答案 0 :(得分:4)

对此最好的方法是

  1. 分析用户的行为
  2. 查看所有关键字符合他的兴趣
  3. 在具有所有这些关键字的另一个索引中为每个用户维护一个文档。
  4. 在搜索该用户时,使用function_score query
  5. 来增加这些关键字的出现次数
  6. 你可以在boost函数中使用术语过滤来实现这一点。在函数分数查询中的函数下添加boost函数
  7. terms filter中,您可以指向此用户文档并动态获取值
  8. 使用自定义过滤器键,以便构建的缓存键不会占用太多内存
  9. 在这种方法中,您可以避免在客户端代码中使用大量代码路径。