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

标签 elasticsearch

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

最佳答案

最好的方法是

  • 分析用户
  • 的行为
  • 查看所有与他感兴趣的关键字
  • 在每个用户的另一个索引中维护一个具有所有这些关键字的文档。
  • 在搜索该用户时,请使用function_score query
  • 来提高这些关键字的出现率
  • 您可以在boost函数中使用术语过滤器来实现此目的。在功能得分查询
  • 中的函数下添加boost函数
  • terms filter中,您可以指向此用户文档并动态获取值
  • 使用自定义过滤器键,以便构造的缓存键不会占用过多内存

  • 通过这种方法,可以避免客户端代码中的许多代码路径。

    关于elasticsearch - Elasticsearch中基于每个用户行为的评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28578539/

    相关文章:

    java - 为什么我的 java elasticsearch 请求翻译无效?

    elasticsearch - 向现有索引添加dynamic_date_formats-是否需要重新摄取数据?

    sql - 聚合后的Elasticsearch过滤器

    elasticsearch - Elasticsearch 的 NEST 查询不起作用

    django - Django Celery 任务中的 Elasticsearch 索引

    elasticsearch - ElasticSearch完成提示标准分析器不起作用

    elasticsearch - 我应该如何在 logstash 中使用 sql_last_value?

    java - Elasticsearch 聚合查询没有给出预期的输出

    elasticsearch - Elasticsearch 节点之一继续进入错误状态

    ruby-on-rails - Searchkick:Elasticsearch 没有索引 "FORBIDDEN/12/index read-only"?