弹性搜索2.0迁移:" inFilter"当量

时间:2016-04-20 07:21:40

标签: elasticsearch

我正在从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聚合而不是像查询一样。

1 个答案:

答案 0 :(得分:0)

inFilter只是术语过滤器的别名。

删除过滤器后,您应该使用terms query