我们想为ElastichSearch创建一个搜索查询
attestationIdentification
attestationSituationNbr
的所有文档(每个组中可以有多个文档)。问题
在下面启动查询时,我会为每个attestationIdentification
获取存储桶,attestationIdentification
中的最大值为theMax
。
但是,是否可以立即获取文件?和某种top_hits
一样?或者我是否真的必须使用这些结果启动另一个搜索?
此外,是否可以使用NEST.ElasticSearch?
执行此操作简单示例数据:
{
"attestationIdentification" : 1,
"attestationSituationNbr" : 20
},
{
"attestationIdentification" : 1,
"attestationSituationNbr" : 21
},
{
"attestationIdentification" : 2,
"attestationSituationNbr" : 30
}
我的查询
{
"aggs": {
"yourGroup": {
"terms": {
"field": "attestationIdentification",
"size": 10
},
"aggs": {
"theMax": {
"max": {
"field": "attestationSituationNbr"
}
}
}
}
}
}
结果
结果是每个组的最大值,但是,我想获得具有此最大值的文档:
...
"aggregations": {
"yourGroup": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 1,
"doc_count": 4,
"theMax": { "value": 21 }
},
{
"key": 2,
"doc_count": 2,
"theMax": { "value": 30 }
}
...
答案 0 :(得分:1)
使用top_hits
之类的:
{
"size": 0,
"aggs": {
"yourGroup": {
"terms": {
"field": "attestationIdentification",
"size": 10
},
"aggs": {
"theMax": {
"top_hits": {
"size": "1",
"sort": {
"attestationSituationNbr": {
"order": "desc"
}
}
}
}
}
}
}
}