elasticsearch - 如何在 java api 中制作桶过滤器

elasticsearch - how to make bucket filter in java api

我做了一些类似下面的 elasticsearch 查询,效果很好。

  "aggregations" : {
    "agg_sum" : {
      "sum" : {
        "field" : "cnt"
      }
    },
    "bucket_filter": {
        "bucket_selector": {
            "buckets_path": {
              "totalSales": "agg_sum"
            },
            "script": "totalSales >= 10"
        }
    }
  }

需要转换为javaapi查询,但不知道如何转换"buckets_filter"。知道这个吗?

BucketSelector 在 java api 中是这样的:

Map<String, String> bucketsPathsMap = new HashMap<>();
        bucketsPathsMap.put("ags", "agg_sum");
        Script script = new Script("params.ags > 10");

   BucketSelectorPipelineAggregationBuilder bs =
                PipelineAggregatorBuilders.bucketSelector("bucket_filter", bucketsPathsMap, script);
AggregationBuilders.subAggregation(bs);

这可能为时已晚,只是为了同样的问题。