elasticsearch - Elasticsearch ,通过存储桶数而不是文档来限制结果大小

标签 elasticsearch

我有大约几千个分类的数百万个日志文档,我想搜索所有日志条目,并将每个日志条目放入正确的存储桶中,其中每个存储桶都是分类的(具有分类的唯一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/

相关文章:

elasticsearch - Elasticsearch普通查询到BoolQuery的转换不起作用

elasticsearch - 搜索特定类型的字段

elasticsearch - 错误 : Logstash stopped processing because of an error: (SystemExit) exit

search - 同义词,将权重存储在文档中以在Elastic Search中进行相关性评分

elasticsearch - Elasticsearch ,使用脚本字段获取聚合结果

elasticsearch - 如何在logstash中基于grok创建过滤器

c# - Elasticsearch Scroll Api-获取当前滚动位置

elasticsearch - 如何过滤或排除 ElasticSearch 中的错误字段?

elasticsearch - 在Elastic Search中,如何从索引中的每种类型中获取结果(限于10个查询)?

search - 按相关性过滤ElasticSearch的结果