以下是我的查询:
{
"size" : 0,
"query" : {
"bool" : {
"must" : {
"match_all" : { }
},
"filter" : {
"bool" : {
"must" : [ {
"terms" : {
"unblindMemberId" : [ "first", "erw", "810182628017", "ewrew", "swer", "rew", "wer", "ewr", "ewr", "r", "r", "dsf", "810218592401", "sd", "s", "last" ]
}
}, {
"bool" : {
"must" : {
"exists" : {
"field" : "udf7_lab"
}
}
}
} ]
}
}
}
},
"aggregations" : {
"members" : {
"terms" : {
"field" : "unblindMemberId"
},
"aggregations" : {
"top_risk" : {
"top_hits" : {
"size" : 1,
"_source" : {
"includes" : [ "udf7_lab" ],
"excludes" : [ "" ]
},
"sort" : [ {
"svc_service_date" : {
"order" : "desc"
}
} ]
}
}
}
}
}
}
在上面的查询中,聚合不能正常工作。
第一个元素的数据即第一个元素没有被拉动。但是,当unblindMemberId的最后一个元素被移除时,即。持续。首先是拉数据。
此外,只添加第一个和最后一个元素
即。 unblindMemberId:["first","last"]
正在为两个ID提取记录。
在没有聚合的情况下执行查询时,术语过滤器正常工作,因为所有unblindMemberIds都被拉出,包括第一个和最后一个ID。
第一个和最后一个列表中的其他记录也没有被提取。
在我看来,
"aggregations" : {
"members" : {
"terms" : {
"field" : "unblindMemberId"
}
}
此特定聚合无法提取所需记录。我无法确定原因,因为术语聚合的基本功能不起作用。任何帮助都非常感谢。
答案 0 :(得分:0)
问题在于聚合术语。我没有设置size = 0,因为默认情况下,当未设置大小时,只会拉出10个数据。因此我通过添加大小来解决:
"terms": {
"field": "unblindMemberId",
"size":0
}