elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

将弹性搜索从1.4.3迁移到2.4 java代码

将弹性搜索从1.4.3迁移到2.4 java代码,java,elasticsearch,Java,elasticsearch,我正在从弹性搜索1.4.3迁移到2.4和 替换弹性搜索文档中引用的代码段和其他引用是否需要替换andFilter 代码:- TermQueryBuilder incPlatformFilter=QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS, platformId); //For MissingQuerybuilder //MissingFilterBuilder in

我正在从弹性搜索1.4.3迁移到2.4和 替换弹性搜索文档中引用的代码段和其他引用是否需要替换andFilter

代码:-

  TermQueryBuilder incPlatformFilter=QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS, platformId);

  //For MissingQuerybuilder
  //MissingFilterBuilder incPlatformEmptyFilter = FilterBuilders.missingFilter(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS);
  BoolQueryBuilder incPlatformEmptyFilter = new BoolQueryBuilder().mustNot(new ExistsQueryBuilder(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS));
  //NotFilterBuilder
  //NotFilterBuilder excPlatformFilter = FilterBuilders.notFilter(FilterBuilders.termFilter(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId));
  TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId);
  BoolQueryBuilder excPlatformFilter = new BoolQueryBuilder().mustNot(termQueryBuilder);

  QueryBuilder platformPartialMatched = QueryHelper.andFilterBuilders(excPlatformFilter, incPlatformEmptyFilter);

  public class QueryHelper {
    public static QueryBuilder andFilterBuilders(QueryBuilder... filterBuilders) {

     QueryBuilder filterBuilder = null;

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

  filterBuilder = QueryBuilders.andFilter(filterBuilders);
}
return filterBuilder;}
}

您可以这样做:

TermQueryBuilder incPlatformFilter = QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS, platformId);

//For MissingQuerybuilder
//MissingFilterBuilder incPlatformEmptyFilter = FilterBuilders.missingFilter(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS);
BoolQueryBuilder incPlatformEmptyFilter = new BoolQueryBuilder().mustNot(new ExistsQueryBuilder(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS));
//NotFilterBuilder
//NotFilterBuilder excPlatformFilter = FilterBuilders.notFilter(FilterBuilders.termFilter(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId));
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId);
BoolQueryBuilder excPlatformFilter = new BoolQueryBuilder().mustNot(termQueryBuilder);

// ==> use a bool/filter to replace the "and" query <<==
QueryBuilder platformPartialMatched = QueryBuilders.boolQuery()
    .filter(excPlatformFilter)
    .filter(incPlatformEmptyFilter);
TermQueryBuilder incPlatformFilter=QueryBuilders.termQuery(IdxSchemaConstants.FULL\u OFFER\u ACTION\u INCLUSIVE\u platformId);
//因为缺少QueryBuilder
//MissingFilterBuilder incPlatformEmptyFilter=FilterBuilders.missingFilter(IdxSchemaConstants.FULL\u OFFER\u ACTION\u INCLUSIVE\u PLATFORMS);
BoolQueryBuilder incPlatformEmptyFilter=new BoolQueryBuilder().mustNot(新的ExistsQueryBuilder(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS));
//NotFilterBuilder
//NotFilterBuilder excPlatformFilter=FilterBuilders.notFilter(FilterBuilders.termFilter(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_platformId));
TermQueryBuilder TermQueryBuilder=QueryBuilders.termQuery(IdxSchemaConstants.FULL\u OFFER\u ACTION\u EXCLUSIVE\u platformId平台);
BoolQueryBuilder explatformfilter=new BoolQueryBuilder().mustNot(termQueryBuilder);

//==>使用布尔/过滤器替换“和”查询您可以这样做:

TermQueryBuilder incPlatformFilter = QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS, platformId);

//For MissingQuerybuilder
//MissingFilterBuilder incPlatformEmptyFilter = FilterBuilders.missingFilter(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS);
BoolQueryBuilder incPlatformEmptyFilter = new BoolQueryBuilder().mustNot(new ExistsQueryBuilder(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS));
//NotFilterBuilder
//NotFilterBuilder excPlatformFilter = FilterBuilders.notFilter(FilterBuilders.termFilter(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId));
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_PLATFORMS, platformId);
BoolQueryBuilder excPlatformFilter = new BoolQueryBuilder().mustNot(termQueryBuilder);

// ==> use a bool/filter to replace the "and" query <<==
QueryBuilder platformPartialMatched = QueryBuilders.boolQuery()
    .filter(excPlatformFilter)
    .filter(incPlatformEmptyFilter);
TermQueryBuilder incPlatformFilter=QueryBuilders.termQuery(IdxSchemaConstants.FULL\u OFFER\u ACTION\u INCLUSIVE\u platformId);
//因为缺少QueryBuilder
//MissingFilterBuilder incPlatformEmptyFilter=FilterBuilders.missingFilter(IdxSchemaConstants.FULL\u OFFER\u ACTION\u INCLUSIVE\u PLATFORMS);
BoolQueryBuilder incPlatformEmptyFilter=new BoolQueryBuilder().mustNot(新的ExistsQueryBuilder(IdxSchemaConstants.FULL_OFFER_ACTION_INCLUSIVE_PLATFORMS));
//NotFilterBuilder
//NotFilterBuilder excPlatformFilter=FilterBuilders.notFilter(FilterBuilders.termFilter(IdxSchemaConstants.FULL_OFFER_ACTION_EXCLUSIVE_platformId));
TermQueryBuilder TermQueryBuilder=QueryBuilders.termQuery(IdxSchemaConstants.FULL\u OFFER\u ACTION\u EXCLUSIVE\u platformId平台);
BoolQueryBuilder explatformfilter=new BoolQueryBuilder().mustNot(termQueryBuilder);

//==>使用bool/filter替换“and”查询意味着应该删除另一个具有方法和FilterBuilder的QueryHelper类?这是一个自定义帮助器类,似乎不再需要它了。但是如果我想替换,或者过滤器QueryBuilder platformPartialMatched=QueryBuilders.boolQuery().filter(excPlatformFilter).filter(incPlatformEmptyFilter);代码是什么?使用
.should(…)
而不是
.filter(…)
我用上面的代码missingQueryBuilder代替MissingQueryFilter和NotQueryBuilder代替NotQueryFilter,对吗?这意味着应该删除另一个拥有方法和FilterBuilder的类QueryHelper?这是一个自定义帮助器类,似乎不再需要它了。但是,它的共同点是什么de如果我想或筛选器QueryBuilder platformPartialMatched=QueryBuilders.boolQuery().filter(excPlatformFilter).filter(incPlatformEmptyFilter);代码是什么?使用
。应该(…)
而不是
。filter(…)
我使用的上述代码是missingQueryBuilder代替MissingQueryFilter和NotQueryBuilder代替NotQueryFilter,它们是否正确?