我有大约数千个分类的日志文档,我希望搜索所有日志条目,并将每个日志条目中的每一个放入正确的桶中,其中每个桶都是分类的(具有分类的唯一ID)。我知道如何限制文件的数量,但有没有办法限制桶的数量?
{
"size":10 #this limits by the docs length
"aggregations": {
"clfds": {
"terms": {
"field": "clsfd_id"
}
}
},
"sort":[
{
"clsfd_id":{
"order":"asc"
}
},
],
"query":{
"filtered":{
"query":{
"match_all":{
}
},
"filter":{
"bool":{
"should":[
#filled dynamically
],
}
}
}
}
}
答案 0 :(得分:1)
我不确定这是否是您要求的,但您只需使用size
聚合中的terms
属性来限制返回的存储桶数量:
{
"size":10 #this limits by the docs length
"aggregations": {
"clfds": {
"terms": {
"size": 50,
"field": "clsfd_id"
}
}
},
"sort":[
{
"clsfd_id":{
"order":"asc"
}
},
],
"query":{
"filtered":{
"query":{
"match_all":{
}
},
"filter":{
"bool":{
"should":[
#filled dynamically
],
}
}
}
}
}
如果您想在聚合存储桶下查看实际文档,可以使用the top_hits
aggregation:
{
"aggs": {
"clfds": {
"terms": {
"field": "clsfd_id",
"size": 50
},
"aggs": {
"top_clfds_hits": {
"top_hits": {
"sort": [
{
"clsfd_id": {
"order": "asc"
}
}
],
"size": 10
}
}
}
}
}
}