org.elasticsearch.index.query.QueryBuilder类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(10.5k)|赞(0)|评价(0)|浏览(174)

本文整理了Java中org.elasticsearch.index.query.QueryBuilder类的一些代码示例,展示了QueryBuilder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryBuilder类的具体详情如下:
包路径:org.elasticsearch.index.query.QueryBuilder
类名称:QueryBuilder

QueryBuilder介绍

暂无

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
    builder.startObject();
    builder.field("query");
    query.toXContent(builder, params);
    return builder.endObject();
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
protected Query doToQuery(QueryShardContext context) throws IOException {
  Query positive = positiveQuery.toQuery(context);
  Query negative = negativeQuery.toQuery(context);
  return new BoostingQuery(positive, negative, negativeBoost);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
protected Query doToQuery(QueryShardContext context) throws IOException {
  ScoreFunction[] filterFunctions = new ScoreFunction[filterFunctionBuilders.length];
  int i = 0;
  for (FilterFunctionBuilder filterFunctionBuilder : filterFunctionBuilders) {
    ScoreFunction scoreFunction = filterFunctionBuilder.getScoreFunction().toFunction(context);
    if (filterFunctionBuilder.getFilter().getName().equals(MatchAllQueryBuilder.NAME)) {
      filterFunctions[i++] = scoreFunction;
    } else {
      Query filter = filterFunctionBuilder.getFilter().toQuery(context);
      filterFunctions[i++] = new FunctionScoreQuery.FilterScoreFunction(filter, scoreFunction);
    }
  }
  Query query = this.query.toQuery(context);
  if (query == null) {
    query = new MatchAllDocsQuery();
  }
  CombineFunction boostMode = this.boostMode == null ? DEFAULT_BOOST_MODE : this.boostMode;
  // handle cases where only one score function and no filter was provided. In this case we create a FunctionScoreQuery.
  if (filterFunctions.length == 0) {
    return new FunctionScoreQuery(query, minScore, maxBoost);
  } else if (filterFunctions.length == 1 && filterFunctions[0] instanceof FunctionScoreQuery.FilterScoreFunction == false) {
    return new FunctionScoreQuery(query, filterFunctions[0], boostMode, minScore, maxBoost);
  }
  // in all other cases we create a FunctionScoreQuery with filters
  return new FunctionScoreQuery(query, scoreMode, filterFunctions, boostMode, minScore, maxBoost);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private static void addBooleanClauses(QueryShardContext context, BooleanQuery.Builder booleanQueryBuilder,
                   List<QueryBuilder> clauses, Occur occurs) throws IOException {
  for (QueryBuilder query : clauses) {
    Query luceneQuery = null;
    switch (occurs) {
      case MUST:
      case SHOULD:
        luceneQuery = query.toQuery(context);
        break;
      case FILTER:
      case MUST_NOT:
        luceneQuery = query.toFilter(context);
        break;
    }
    booleanQueryBuilder.add(new BooleanClause(luceneQuery, occurs));
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
public final QueryBuilder rewrite(QueryRewriteContext queryShardContext) throws IOException {
  QueryBuilder rewritten = doRewrite(queryShardContext);
  if (rewritten == this) {
    return rewritten;
  }
  if (queryName() != null && rewritten.queryName() == null) { // we inherit the name
    rewritten.queryName(queryName());
  }
  if (boost() != DEFAULT_BOOST && rewritten.boost() == DEFAULT_BOOST) {
    rewritten.boost(boost());
  }
  return rewritten;
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
  builder.startObject(NAME);
  builder.field(TIE_BREAKER_FIELD.getPreferredName(), tieBreaker);
  builder.startArray(QUERIES_FIELD.getPreferredName());
  for (QueryBuilder queryBuilder : queries) {
    queryBuilder.toXContent(builder, params);
  }
  builder.endArray();
  printBoostAndQueryName(builder);
  builder.endObject();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
  builder.startObject();
  builder.startObject("nodes");
  for (DiscoveryNode node : nodes) {
    node.toXContent(builder, params);
  builder.endObject();
  if (indicesAndFilters != null) {
    builder.startObject("indices");
        if (aliasFilter.getQueryBuilder() != null) { // might be null if we include non-filtering aliases
          builder.field("filter");
          aliasFilter.getQueryBuilder().toXContent(builder, params);

代码示例来源:origin: org.elasticsearch/elasticsearch

private static void doXArrayContent(String field, List<QueryBuilder> clauses, XContentBuilder builder, Params params)
    throws IOException {
  if (clauses.isEmpty()) {
    return;
  }
  builder.startArray(field);
  for (QueryBuilder clause : clauses) {
    clause.toXContent(builder, params);
  }
  builder.endArray();
}

代码示例来源:origin: dremio/dremio-oss

public static String queryAsJson(QueryBuilder query) throws IOException {
 XContentBuilder x = XContentFactory.jsonBuilder();
 x.prettyPrint().lfAtEnd();
 query.toXContent(x, ToXContent.EMPTY_PARAMS);
 return x.string();
}

代码示例来源:origin: komoot/photon

@Override
  public String convert(QueryBuilder anItem) {
    try {
      BytesReference bytes = anItem.toXContent(JsonXContent.contentBuilder(), new ToXContent.MapParams(null))
          .bytes();

      return bytes.utf8ToString();
    } catch (IOException e) {
      log.error("Unable to transform querybuilder to a json string due to an exception", e);
      throw new RuntimeException("Unable to transform querybuilder to a json string due to an exception", e);
    }
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private static boolean rewriteClauses(QueryRewriteContext queryRewriteContext, List<QueryBuilder> builders,
                     Consumer<QueryBuilder> consumer) throws IOException {
    boolean changed = false;
    for (QueryBuilder builder : builders) {
      QueryBuilder result = builder.rewrite(queryRewriteContext);
      if (result != builder) {
        changed = true;
      }
      consumer.accept(result);
    }
    return changed;
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public AliasActions filter(QueryBuilder filter) {
  if (filter == null) {
    this.filter = null;
    return this;
  }
  try {
    XContentBuilder builder = XContentFactory.jsonBuilder();
    filter.toXContent(builder, ToXContent.EMPTY_PARAMS);
    builder.close();
    this.filter = Strings.toString(builder);
    return this;
  } catch (IOException e) {
    throw new ElasticsearchGenerationException("Failed to build json for alias request", e);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
  protected void doBuild(SearchContext parentSearchContext,
           InnerHitsContext innerHitsContext) throws IOException {
    QueryShardContext queryShardContext = parentSearchContext.getQueryShardContext();
    ObjectMapper nestedObjectMapper = queryShardContext.getObjectMapper(path);
    if (nestedObjectMapper == null) {
      if (innerHitBuilder.isIgnoreUnmapped() == false) {
        throw new IllegalStateException("[" + query.getName() + "] no mapping found for type [" + path + "]");
      } else {
        return;
      }
    }
    String name =  innerHitBuilder.getName() != null ? innerHitBuilder.getName() : nestedObjectMapper.fullPath();
    ObjectMapper parentObjectMapper = queryShardContext.nestedScope().nextLevel(nestedObjectMapper);
    NestedInnerHitSubContext nestedInnerHits = new NestedInnerHitSubContext(
      name, parentSearchContext, parentObjectMapper, nestedObjectMapper
    );
    setupInnerHitsContext(queryShardContext, nestedInnerHits);
    queryShardContext.nestedScope().previousLevel();
    innerHitsContext.addInnerHitDefinition(nestedInnerHits);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
protected XContentBuilder internalXContent(XContentBuilder builder, Params params) throws IOException {
  if (filter != null) {
    filter.toXContent(builder, params);
  }
  return builder;
}

代码示例来源:origin: macrozheng/mall

@Override
public Page<EsProduct> recommend(Long id, Integer pageNum, Integer pageSize) {
  Pageable pageable = new PageRequest(pageNum, pageSize);
  List<EsProduct> esProductList = productDao.getAllEsProductList(id);
  if (esProductList.size() > 0) {
    EsProduct esProduct = esProductList.get(0);
    String keyword = esProduct.getName();
    Long brandId = esProduct.getBrandId();
    Long productCategoryId = esProduct.getProductCategoryId();
    //根据商品标题、品牌、分类进行搜索
    FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery()
        .add(QueryBuilders.matchQuery("name",keyword),ScoreFunctionBuilders.weightFactorFunction(8))
        .add(QueryBuilders.matchQuery("subTitle",keyword),ScoreFunctionBuilders.weightFactorFunction(2))
        .add(QueryBuilders.matchQuery("keywords",keyword),ScoreFunctionBuilders.weightFactorFunction(2))
        .add(QueryBuilders.termQuery("brandId",brandId),ScoreFunctionBuilders.weightFactorFunction(10))
        .add(QueryBuilders.matchQuery("productCategoryId",productCategoryId),ScoreFunctionBuilders.weightFactorFunction(6))
        .scoreMode("sum")
        .setMinScore(2);
    NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();
    builder.withQuery(functionScoreQueryBuilder);
    builder.withPageable(pageable);
    NativeSearchQuery searchQuery = builder.build();
    LOGGER.info("DSL:{}", searchQuery.getQuery().toString());
    return productRepository.search(searchQuery);
  }
  return new PageImpl<>(null);
}

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

@Override
public QueryRescoreContext build(QueryShardContext context) throws IOException {
  org.elasticsearch.search.rescore.QueryRescorer rescorer = new org.elasticsearch.search.rescore.QueryRescorer();
  QueryRescoreContext queryRescoreContext = new QueryRescoreContext(rescorer);
  queryRescoreContext.setQuery(QueryBuilder.rewriteQuery(this.queryBuilder, context).toQuery(context));
  queryRescoreContext.setQueryWeight(this.queryWeight);
  queryRescoreContext.setRescoreQueryWeight(this.rescoreQueryWeight);
  queryRescoreContext.setScoreMode(this.scoreMode);
  if (this.windowSize != null) {
    queryRescoreContext.setWindowSize(this.windowSize);
  }
  return queryRescoreContext;
}

代码示例来源:origin: sirensolutions/siren-join

/**
 * The query source to execute.
 *
 * @see {@link org.elasticsearch.index.query.QueryBuilders}
 */
public TermsByQueryRequest query(QueryBuilder queryBuilder) {
 this.querySource = queryBuilder == null ? null : queryBuilder.buildAsBytes();
 return this;
}

代码示例来源:origin: VanRoy/spring-data-jest

private void addBoost(QueryBuilder query, float boost) {
    if (Float.isNaN(boost)) {
      return;
    }
    query.boost(boost);
  }
}

代码示例来源:origin: com.scireum/sirius-search

@Override
public QueryBuilder createQuery() {
  return constraint.createQuery().queryName(queryName);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

@Override
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
  builder.startObject(NAME);
  if (query != null) {
    builder.field(QUERY_FIELD.getPreferredName());
    query.toXContent(builder, params);
  }
  builder.startArray(FUNCTIONS_FIELD.getPreferredName());
  for (FilterFunctionBuilder filterFunctionBuilder : filterFunctionBuilders) {
    filterFunctionBuilder.toXContent(builder, params);
  }
  builder.endArray();
  builder.field(SCORE_MODE_FIELD.getPreferredName(), scoreMode.name().toLowerCase(Locale.ROOT));
  if (boostMode != null) {
    builder.field(BOOST_MODE_FIELD.getPreferredName(), boostMode.name().toLowerCase(Locale.ROOT));
  }
  builder.field(MAX_BOOST_FIELD.getPreferredName(), maxBoost);
  if (minScore != null) {
    builder.field(MIN_SCORE_FIELD.getPreferredName(), minScore);
  }
  printBoostAndQueryName(builder);
  builder.endObject();
}

相关文章