我的问题是我们如何为每个搜索记录提供动态提升值?
在我的情况下,数据库中的每条记录都有一个分配给它的点值,我必须在搜索时将该点指定为提升值。
谢谢和问候
答案 0 :(得分:3)
我使用以下方法解决了这个问题:
custom_score :script => "_score+doc['increase_relevance_points'].value" do
boolean do
should { match :increase_relevance_text, term}
end
end
答案 1 :(得分:0)
您可以将数据库记录中的点值作为整数索引到ElasticSearch中。一旦它出现在那里,您可以使用custom_score
或script based sorting来获得很多选项。
如果您希望将每个结果提升point_value
因子,则查询可能如下所示:
"query": {
"custom_score" : {
"query" : {
....
},
"script" : "doc['point_value'].value * _score"
}
}
查看custom score query docs以获取完整信息。