[英]Elastic Search, limit results size by buckets count instead of documents
我有大約數以千計的分類的數百萬個日志文檔,我想搜索所有日志條目,然后將每個日志條目放入正確的存儲桶中,其中每個存儲桶都是分類的(具有分類的唯一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
],
}
}
}
}
}
我不確定這是否是您要的內容,但是您可以在terms
聚合中簡單地使用size
屬性來限制返回的存儲桶數:
{
"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
],
}
}
}
}
}
如果您想查看聚合存儲桶下的實際文檔,可以使用top_hits
聚合 :
{
"aggs": {
"clfds": {
"terms": {
"field": "clsfd_id",
"size": 50
},
"aggs": {
"top_clfds_hits": {
"top_hits": {
"sort": [
{
"clsfd_id": {
"order": "asc"
}
}
],
"size": 10
}
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.