我正在尝试使用以下查询对结果进行评分:
POST /archive/item/_search
{
"query": {
"multi_match": {
"fields": ["title", "description"],
"query": "1 złoty",
"operator": "and"
}
},
"rescore": {
"window_size": 50,
"query": {
"rescore_query": {
"multi_match": {
"type": "phrase",
"fields": ["title", "description"],
"query": "1 złoty",
"slop": 10
}
},
"query_weight": 0,
"rescore_query_weight": 1
}
}
}
我之所以这样做,是因为我主要想按接近度得分。
另外,我想忽略源字段长度对分数的影响。
我这样做对吗?如果没有,这里的最佳做法是什么?
还有第二个问题。为什么仍然需要
window_size
?我只想要最好的结果。
主要查询atcs就像过滤器一样,因此它返回的所有结果都是相关的。
我质疑
"window_size": "all"
这样的东西会很完美,但我在文档中找不到任何东西。
最佳答案
为了回答您的第二个问题,之所以需要它,是因为它只为获得最佳结果而设计。基本上,这是一个成本问题-假设次级算法的成本更高,因此只能将其运行在最高结果上。这里有更多关于此的讨论:
https://github.com/elasticsearch/elasticsearch/issues/2640
和这里:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-rescore.html
我个人认为“全部”选项是个好主意,也许您应该在github上发布一个问题?
关于elasticsearch - Elasticsearch重新评估所有结果,而忽略了基本得分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776706/