我有大约几千个分类的数百万个日志文档,我想搜索所有日志条目,并将每个日志条目放入正确的存储桶中,其中每个存储桶都是分类的(具有分类的唯一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
],
}
}
}
}
}
最佳答案
我不确定这是否是您要的内容,但是您可以简单地使用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
}
}
}
}
}
}
关于elasticsearch - Elasticsearch ,通过存储桶数而不是文档来限制结果大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540802/