elasticsearch - QueryBuilders数组 Elasticsearch 2.4

标签 elasticsearch

 QueryBuilder missingFiletr = QueryHelper.andQuery(incCatsEmptyFilter, excCatsEmptyFilter, incEmptyFilter, excEmptyFilter);

我正在调用andQuery方法以及和FilterBuilders的所有参数()
现在要去 filterBuilders 数组,我要将其提取到 filterBuilder 中,因为我想对所有queryBuilders进行。格式正确吗
public static QueryBuilder andQuery(QueryBuilder... filterBuilders) {
QueryBuilder filterBuilder = null;

if (filterBuilders != null && filterBuilders.length > 0) {

  for(int i = 0 ; i < filterBuilders.length ; i++){
    filterBuilder = QueryBuilders.boolQuery().filter(filterBuilders[i]);
  }

}
return filterBuilder;

}

最佳答案

不,您要在每次迭代中创建一个新的bool/filter查询,并将其重新分配给相同的变量,但这种方法将不起作用。您需要这样做:

public static QueryBuilder andQuery(QueryBuilder... filterBuilders) {
  BoolQueryBuilder filterBuilder = null;

  if (filterBuilders != null && filterBuilders.length > 0) {
    // create the bool query here
    filterBuilder = QueryBuilders.boolQuery();    

    for(QueryBuilder filter : filterBuilders){
      // add each filter to the bool query here
      filterBuilder.filter(filter);
    }

  }
  return filterBuilder;
}

关于elasticsearch - QueryBuilders数组 Elasticsearch 2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606310/

相关文章:

json - 如何在bucket_script中使用JSON.parse?

mysql - 如何自动将数据从mysql更新到logstash

MUST 和 SHOULD bool 查询之间的 Elasticsearch 区别

elasticsearch - 使用 Java API 定义自定义 ElasticSearch Analyzer

elasticsearch - Elasticsearch 合并排序和范围功能

ruby-on-rails - 轮胎中的自定义分析器(ElasticSearch)

elasticsearch - 查询或过滤最小字段值?

azure - 将 ElasticSearch 安装的数据放置在 Azure 中的何处?

c# - 巢-IndexMany不索引我的对象

spring - JAVA spring (JPA)中的PostgreSQL + Elasticsearch同步