Elasticsearch 中基于每个用户行为的评分
Per user behavior based scoring in Elasticsearch
我们通过分析用户通常搜索的标签来了解用户的行为。
现在我们需要为这些用户赋予此类标签更高的优先级。我想知道我们如何使用 Elasticsearch 以优雅的方式实现这一目标。
最好的方法是
- 分析用户的行为
- 查看他感兴趣的所有关键字
- 在包含所有这些关键字的另一个索引中为每个用户维护一个文档。
- 在搜索该用户时,使用 function_score query
提高这些关键字的出现次数
- 可以在boost函数中使用terms filter来实现this.Add函数分数查询中functions下的boost函数
- 在 terms filter 中,您可以指向此用户文档并动态获取值
- 使用自定义过滤键,这样构造的缓存键就不会占用太多内存
在这种方法中,您可以避免客户端代码中的大量代码路径。
我们通过分析用户通常搜索的标签来了解用户的行为。 现在我们需要为这些用户赋予此类标签更高的优先级。我想知道我们如何使用 Elasticsearch 以优雅的方式实现这一目标。
最好的方法是
- 分析用户的行为
- 查看他感兴趣的所有关键字
- 在包含所有这些关键字的另一个索引中为每个用户维护一个文档。
- 在搜索该用户时,使用 function_score query 提高这些关键字的出现次数
- 可以在boost函数中使用terms filter来实现this.Add函数分数查询中functions下的boost函数
- 在 terms filter 中,您可以指向此用户文档并动态获取值
- 使用自定义过滤键,这样构造的缓存键就不会占用太多内存
在这种方法中,您可以避免客户端代码中的大量代码路径。