我想使用elasticsearch功能评分来定制评分,这是我排名的优先事项:
这是当前使用的elasticsearch请求体:
body = {
"query": {
"function_score": {
"query": {
{'match': {'text': query}}
},
"functions": [
{
"field_value_factor": {
"field": "ducoumnet_popularity",
}
}
],
}
}
}问题是,第一优先事项并不满足于这一要求。例如,文档A的查询术语可能比B文档少,但由于其通用术语tf/国防军得分较高,所以A文档的排名高于B文档。
为了防止这一点,我认为最好的办法是通过协调因素来提高文档的得分。有办法这样做吗?类似于这一请求的内容:
body = {
"query": {
"function_score": {
"query": {
{'match': {'text': query}}
},
"functions": [
{
"field_value_factor": {
"field": "ducoumnet_popularity",
},
"field_value_factor": {
"field": "_coordination"
"weight": 10
}
}
],
}
}
}发布于 2018-07-16 16:58:18
我没有找到这个问题的确切答案,但它可能会帮助人们知道,您可以使用minimum_should_match限制文档的最小精度。
{
"query": {
"match": {
"content": {
"query": "quick brown dog",
"minimum_should_match": 75%
}
}
}
}它接受许多不同的配置。更多解释:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
https://stackoverflow.com/questions/33197159
复制相似问题