search - Elasticsearch 的个性化搜索结果

标签 search elasticsearch personalization

如何设置 Elasticsearch 以使其返回个性化结果?

例如,我希望返回给特定用户的结果排名更高,如果他们之前点击了某个结果,或者如果他们“加星标”了过去的结果。您还可以有一个“隐藏”选项,将结果进一步降低排名。到目前为止,从我对 elasticsearch 的了解来看,似乎很难根据用户自己的动态数据向用户返回不同的排名。

该解决方案必须扩展到每天进行十几次搜索的数千名用户。理想情况下,我希望排名实时变化,但这并不重要。

最佳答案

Elasticsearch 提供了多种评分选项,但是要实现您所说的,您需要执行一些额外的任务。

Function score query和文件 terms lookup terms filter将是我们选择的工具

首先为每个用户创建一个文档,告诉他访问过的链接或链接ID以及他喜欢的链接。这应该作为单独的索引单独存放。这应该由用户维护,因为他应该从客户端更新和维护此记录。

现在,当用户点击数据索引时,使用指向此字段的过滤器函数执行函数评分查询。

在这种方法中,由于过滤器被缓存,您也应该获得不错的性能。

关于search - Elasticsearch 的个性化搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28117977/

相关文章:

linux - 从一个更大的二进制文件中寻找一个大的二进制值

java - 如何在 Lucene-3x 中使用模糊(近似)搜索找到已分析的术语?

PHP MySQL 搜索脚本 - 只匹配某些字母

ruby-on-rails - 无法打开与本地主机 :9200 - Rails on Docker 的 TCP 连接

elasticsearch - 具有Metricbeat的卷使用的Kubernetes百分比

sitecore - SItecore 中的个性化

search - block 世界问题搜索用完堆栈空间

elasticsearch - Elasticsearch集群中所有节点的滚动节点重启

java - liferay个性化规则