Elasticsearch的个性化搜索结果

时间:2015-01-23 20:12:30

标签: search elasticsearch personalization

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

例如,我希望返回给特定用户的结果如果他们之前点击了某个结果,或者他们是"已加星标"这导致了过去。你也可以有一个"隐藏"将结果推向排名的选项。从目前为止我在弹性搜索中看到的情况来看,根据用户自己的动态数据,很难向用户返回不同的排名。

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

1 个答案:

答案 0 :(得分:8)

Elasticsearch提供了各种各样的评分选项,但是为了达到你所说的,你需要做一些额外的任务。

Function score query和文档terms lookup terms filter将成为我们选择的工具

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

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

在这种方法中,当缓存过滤器时,你也应该获得不错的性能。