elasticsearch。_Score在聚合中为null。为什么?
我使用ES v 1.7。ES仅在“命中”部分返回_score,但是我对“命中”不感兴趣,我需要 从响应的“聚合”部分中
。为什么ES会喜欢这样,以及如何解决?
{ "size": 1,
"query": {
"bool": {
"must": [
{ "match": {"_all": {"query": "test","operator": "and","fuzziness": "2"}}}
],
"should": [
{ "multi_match" : {
"query": "test"
,"type": "best_fields"
,"fields": ["ObjectData.PRTNAME","ObjectData.EXTERNALID","ObjectData.contactList.VALUE","*SERIES","*NUMBER","ObjectData.INN"]
,"operator": "or"
,"boost": 3
}}
]
}
},
"aggs": {
"byObjectID": {
"terms": {"field": "ObjectID"},
"aggs": {
"latestVer": {
"top_hits": {
"sort": [{"creationDate": { "order": "desc" }}]
,"_source": { "include": ["ObjectData.BRIEFNAME", "creationDate", "ObjectID" ]}
,"size": 1
}
}
}
}
}
}
{ "took": 16,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 87,
"max_score": 5.3479624,
"hits": [ {
"_index": "crmws",
"_type": "participant",
"_id": "AVFtAkIcSH3HWHh0wIkd",
"_score": 5.3479624,
"_source": {
"mostRecentVersion": null,
"UserLogin": "ap",
"creationDate": "2015-12-04T12:40:43.292Z",
"_id": null,
"ObjectID": 26784418,
"EventID": null,
"version_id": 3798,
"ObjectTypeId": null,
"ObjectData": {...},
"ObjectTypeSysName": "participant",
"versionNumber": null
}
}]
},
"aggregations": {"byObjectID": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 26745417,
"doc_count": 21,
"latestVer": {"hits": {
"total": 21,
"max_score": null,
"hits": [ {
"_index": "crmws",
"_type": "participant",
"_id": "AVFtQCCtSH3HWHh0wItF",
"_score": null,
"_source": {
"creationDate": "2015-12-04T13:48:17.949Z",
"ObjectID": 26745417,
"ObjectData": {"BRIEFNAME": "Верный-Преверный В. В."}
},
"sort": [1449236897949]
}]
}}
},
...
]
}}
}
回答:
由于您正在使用排序,因此您需要为要计算的分数显式设置“
track_scores ”。
例:
{ "size": 1,
"query": {
"bool": {
"must": [
{ "match": {"_all": {"query": "test","operator": "and","fuzziness": "2"}}}
],
"should": [
{ "multi_match" : {
"query": "test"
,"type": "best_fields"
,"fields": ["ObjectData.PRTNAME","ObjectData.EXTERNALID","ObjectData.contactList.VALUE","*SERIES","*NUMBER","ObjectData.INN"]
,"operator": "or"
,"boost": 3
}}
]
}
},
"aggs": {
"byObjectID": {
"terms": {"field": "ObjectID"},
"aggs": {
"latestVer": {
"top_hits": {
"sort": [{"creationDate": { "order": "desc" }}]
,"_source": { "include": ["ObjectData.BRIEFNAME", "creationDate", "ObjectID" ]}
,"size": 1,
'track_scores" : 1
}
}
}
}
}
}
以上是 elasticsearch。_Score在聚合中为null。为什么? 的全部内容, 来源链接: utcz.com/qa/431479.html