Elasticsearch 的个性化搜索结果

Personalized Search Results for Elasticsearch

如何设置 Elasticsearch 以使其 return 获得个性化结果?

例如,如果特定用户之前点击过某个结果,或者如果他们 "starred" 过去点击过该结果,我希望将结果 return 发送给特定用户的排名更高。您还可以使用 "hide" 选项将结果进一步降低排名。到目前为止,从我在 elasticsearch 中看到的情况来看,似乎很难 return 根据用户自己的动态数据对用户进行不同的排名。

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

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

Function score query and document terms lookup terms filter 将是我们选择的工具

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

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

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