我的数据模型包含两个对象 - 用户和产品(存储在mongodb中)。我已经使用elasticsearch建立了分面产品搜索。现在我正在努力实现“最喜欢的产品” - 用户可以将某些产品标记为他的收藏夹,然后在搜索时它们应该位于列表的顶部。问题是 - 如何对这些最喜欢的产品进行建模以使搜索意识到它并能够执行正确的排序操作?
答案 0 :(得分:0)
这是我的猜测 - 没有尝试过。而且你知道如何挑剔的弹性搜索查询。所以请随时尝试让我们得到反馈。
在您的代码中,提取用户拥有的文档ID作为收藏夹(来自您的用户数据模型)。然后使用elasticsearch constant_score通过将此子句添加到现有的bool查询中来推广那些标记为收藏的内容(或者您已经在搜索产品)。
{
"constant_score" : {
"ids" : {
"values" : ["1", "4", "100"]
}
}
}
如果您的问题位于接近正确的轨道,请随时修改您的问题或此回复,并提供有关您的查询的详细信息。
答案 1 :(得分:0)
我在研究相同功能的实现时发现它非常有用。但我不知道它的缺点,因为我还没有实现它。