我正在从Elasticsearch版本1.4.2迁移到 2.x 。
由于2.x中存在重大变化,并且某些API已被删除,因此我的当前代码会中断。
我在2.x版中寻找相当于 inFilter
的过滤器。
Client client = CerridSearchClientFactory.getInstance().getClient();
SearchRequestBuilder requestBuilder1 = client.prepareSearch(<index name>);
Double[] notNan = new Double[1];
notNan[0] = Double.NaN;
FilterAggregationBuilder filter = AggregationBuilders.filter(<filter name>).filter(FilterBuilders.notFilter(FilterBuilders.inFilter(<field name> , notNan)));
filter = filter.subAggregation(AggregationBuilders.stats(<field name>)
.field(<field name>));
SearchResponse sr = requestBuilder.addAggregation(filter).execute().actionGet();
我使用过滤器执行stats聚合。我也使用过滤器聚合进行sum,min,max聚合而不是像查询一样。