我有这个查询返回给我年龄 = 40、没有居住在状态“ID”并且余额> = 20000 和余额<= 30000 的客户?
查询如下所示:
POST /bank/_search?pretty
{
"query": {
"bool": {
"must": [
{ "match": { "age": "40" } }
],
"must_not": [
{ "match": { "state": "ID" } }
],
"filter": {
"range": {
"balance": {
"gte": 20000,
"lte": 30000
}
}
}
}
}
}
我觉得所有结果文档都具有同等相关性,但 elasticsearch 为每个文档分配了不同的分数。示例结果:https ://jsonblob.com/57de6b37e4b0dc55a4f67d54
我知道分数即将到来,因为我正在使用“匹配”查询。谁能告诉:-
是否可以执行此查询以避免“匹配”并仅使用过滤器?因为我认为通过放置 age=40 和 state="ID",所以我只是在过滤结果集。
我们能否避免这种分数计算,因为在我们的场景中,上述查询是不必要的?
为什么这些文件有不同的分数。由于查询对我来说似乎很简单,它应该返回与此查询匹配或不匹配的文档。这里没有什么比紧密匹配或轻微匹配。