2017-04-06 67 views
0

我想汇总一个字段并只返回doc数在10到20之间的那些存储区,例如,带范围doc数的Elasticsearch术语汇总

从文档到目前为止,它说我们可以提供min_doc_count参数。

有什么办法可以提供max_doc_count也是这样我只得到需要的水桶?

感谢

+1

您可能需要调查[斗选择管道聚集(https://www.elastic.co/guide/en/elasticsearch/reference/current/search- aggregations-pipeline-bucket-selector-aggregation.html) – Val

回答

1

您可以使用下面的查询使用bucket_selector聚集过滤桶。您可以深入了解管道聚合和桶路径here

在下面的示例中,我汇集了product.name字段中的文档,其中product为我的对象类型。

{ 
    "size": 0, 
    "aggs": { 
     "values": { 
      "terms": { 
       "field": "product.name.raw", 
       "size": 10 
      }, 
      "aggs": { 
       "final_filter": { 
        "bucket_selector": { 
         "buckets_path": { 
          "values": "_count" 
         }, 
         "script": "params.values > 10 && params.values < 20" 
        } 
       } 
      } 
     } 
    } 
} 

希望这有助于 感谢

+0

我爱你bro你真棒:D –