Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的问题是我们如何为每条搜索记录提供动态提升值?
在我的情况下,数据库中的每条记录都有一个分配给它的点值,我必须将该点分配为其搜索的提升值。
谢谢并恭祝安康
我使用以下方法解决了这个问题:
custom_score :script => "_score+doc['increase_relevance_points'].value" do boolean do should { match :increase_relevance_text, term} end end
您可以将数据库记录中的点值作为整数索引到 ElasticSearch 中。一旦它在那里,你有很多使用custom_score或基于脚本的排序的选项。
custom_score
如果您想将每个结果提升一个因子,point_value则查询可能类似于:
point_value
"query": { "custom_score" : { "query" : { .... }, "script" : "doc['point_value'].value * _score" } }
查看自定义分数查询文档以获取完整信息。