我怎么知道两个不同的聚合是否汇总了相同的文档



假设我有两个aggs:

   GET .../_search
   {
       "size": 0,
       "aggs": {
           "foo": {
               "terms": {
                   "field": "foo"
               }
           },
           "bar": {
               "terms": {
                   "field": "bar"
               }
           }
       }
   }

返回以下内容:

   ...
   "aggregations": {
       "foo": {
           "doc_count_error_upper_bound": 0,
           "sum_other_doc_count": 0,
           "buckets": [
               {
                   "key": "Africa",
                   "doc_count": 23
               }
           ]
       },
       "bar": {
           "doc_count_error_upper_bound": 0,
           "sum_other_doc_count": 0,
           "buckets": [
               {
                   "key": "Oil",
                   "doc_count": 23
               }
           ]
       }
   }

我的问题是,我怎么知道" foo"one_answers" bar" aggs是否汇总了相同的23个文档?

我尝试在" foo"one_answers" bar" agg中添加子agg以概括一个任意数字字段,但这并不是遥不可及的。

您可以添加一个汇总文档身份字段的子聚集,您可以用术语或复合汇总来执行此操作。使用术语时,您需要提供尺寸。请参阅此示例:

GET .../_search
   {
       "size": 0,
       "aggs": {
           "foo": {
               "terms": {
                   "field": "foo"
               },
               "aggs" : {
                   "terms" : {
                       "field" : your_id_here
                   }
               }
           },
           "bar": {
               "terms": {
                   "field": "bar"
               },
               "aggs" : {
                   "terms" : {
                       "field" : your_id_here
                   }
               }
           }
       }
   }

您需要比较嵌套的聚合。

另一种方法是仅使用搜索查询过滤所需的文档。

相关内容

最新更新