private QueryBuilder buildSearchQuery() { BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); for (ElasticsearchColumnHandle column : columns) { BoolQueryBuilder columnQueryBuilder = new BoolQueryBuilder(); Type type = column.getColumnType(); if (tupleDomain.getDomains().isPresent()) { Domain domain = tupleDomain.getDomains().get().get(column); if (domain != null) { columnQueryBuilder.should(buildPredicate(column.getColumnJsonPath(), domain, type)); } } boolQueryBuilder.must(columnQueryBuilder); } if (boolQueryBuilder.hasClauses()) { return boolQueryBuilder; } return new MatchAllQueryBuilder(); }
private QueryBuilder preparse( Map<String, String> getMap, Map<String, String> notGetMap, Map<String, String> mayAlsoGetMap) { BoolQueryBuilder query = new BoolQueryBuilder(); // Result must have these fields. Acts as AND operator if(getMap != null) { for(Map.Entry<String, String> field : getMap.entrySet()) { query.must(QueryBuilders.termQuery(field.getKey(), field.getValue())); } } // Result must have these fields. if(notGetMap != null) { for(Map.Entry<String, String> field : notGetMap.entrySet()) { query.mustNot(QueryBuilders.termQuery(field.getKey(), field.getValue())); } } // Result may preferably also get these fields. Acts as OR operator if(mayAlsoGetMap != null) { for(Map.Entry<String, String> field : mayAlsoGetMap.entrySet()) { query.should(QueryBuilders.termQuery(field.getKey(), field.getValue())); } } return query; }
private QueryBuilder buildPredicate(String columnName, Domain domain, Type type) { checkArgument(domain.getType().isOrderable(), "Domain type must be orderable"); BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); if (domain.getValues().isNone()) { boolQueryBuilder.mustNot(new ExistsQueryBuilder(columnName)); return boolQueryBuilder; } if (domain.getValues().isAll()) { boolQueryBuilder.must(new ExistsQueryBuilder(columnName)); return boolQueryBuilder; } return buildTermQuery(boolQueryBuilder, columnName, domain, type); }
/** * A Query that matches documents matching boolean combinations of other queries. */ public static BoolQueryBuilder boolQuery() { return new BoolQueryBuilder(); }
private QueryBuilder buildTermQuery(BoolQueryBuilder queryBuilder, String columnName, Domain domain, Type type) BoolQueryBuilder rangeQueryBuilder = new BoolQueryBuilder(); Set<Object> valuesToInclude = new HashSet<>(); checkState(!range.isAll(), "Invalid range for column: " + columnName);
@Override protected QueryBuilder doRewrite(QueryRewriteContext queryRewriteContext) throws IOException { BoolQueryBuilder newBuilder = new BoolQueryBuilder(); boolean changed = false; final int clauses = mustClauses.size() + mustNotClauses.size() + filterClauses.size() + shouldClauses.size(); if (clauses == 0) { return new MatchAllQueryBuilder().boost(boost()).queryName(queryName()); } changed |= rewriteClauses(queryRewriteContext, mustClauses, newBuilder::must); changed |= rewriteClauses(queryRewriteContext, mustNotClauses, newBuilder::mustNot); changed |= rewriteClauses(queryRewriteContext, filterClauses, newBuilder::filter); changed |= rewriteClauses(queryRewriteContext, shouldClauses, newBuilder::should); // lets do some early termination and prevent any kind of rewriting if we have a mandatory query that is a MatchNoneQueryBuilder Optional<QueryBuilder> any = Stream.concat(newBuilder.mustClauses.stream(), newBuilder.filterClauses.stream()) .filter(b -> b instanceof MatchNoneQueryBuilder).findAny(); if (any.isPresent()) { return any.get(); } if (changed) { newBuilder.adjustPureNegative = adjustPureNegative; newBuilder.minimumShouldMatch = minimumShouldMatch; newBuilder.boost(boost()); newBuilder.queryName(queryName()); return newBuilder; } return this; }
@Override protected QueryBuilder doRewrite(QueryRewriteContext context) throws IOException { try (XContentParser qSourceParser = XContentFactory.xContent(source) .createParser(context.getXContentRegistry(), LoggingDeprecationHandler.INSTANCE, source)) { final QueryBuilder queryBuilder = parseInnerQueryBuilder(qSourceParser).rewrite(context); if (boost() != DEFAULT_BOOST || queryName() != null) { final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); boolQueryBuilder.must(queryBuilder); return boolQueryBuilder; } return queryBuilder; } }
/** * A Query that matches documents matching boolean combinations of other queries. */ public static BoolQueryBuilder boolQuery() { return new BoolQueryBuilder(); }
/** * A Query that matches documents matching boolean combinations of other queries. */ public static BoolQueryBuilder boolQuery() { return new BoolQueryBuilder(); }
/** * A Query that matches documents matching boolean combinations of other queries. */ public static BoolQueryBuilder boolQuery() { return new BoolQueryBuilder(); }
BoolQueryBuilder first = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(field1, value1)) .must(QueryBuilders.termQuery(field2, value2)); BoolQueryBuilder second = QueryBuilders.termQuery(field1, value3); BoolQueryBuilder filter = new BoolQueryBuilder() .should(first) .should(second);
/** * A Query that matches documents matching boolean combinations of other queries. */ public static BoolQueryBuilder boolQuery() { return new BoolQueryBuilder(); }
} else { BoolQueryBuilder combined = new BoolQueryBuilder(); for (String aliasName : aliasNames) { AliasMetaData alias = aliases.get(aliasName);
BoolQueryBuilder boolQuery = new BoolQueryBuilder(); for (QueryBuilder queryBuilder : mustClauses) { boolQuery.must(queryBuilder);
private BoolQueryBuilder clausesAsAndESQuery(List<QuotaClause> clauses) { BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); clauses.stream() .map(this::singleClauseAsESQuery) .forEach(boolQueryBuilder::must); return boolQueryBuilder; }
SearchRequestBuilder requestBuilder = client.prepareSearch("crawlbot").setSearchType(SearchType.DFS_QUERY_THEN_FETCH); BoolQueryBuilder queryBuilder = new BoolQueryBuilder(); queryBuilder.must(QueryBuilders.termQuery("article.url", e.getKey().getUrl())); ... ^ | use a term query instead
BoolQueryBuilder groupQuery = new BoolQueryBuilder(); Object collapseValue = hit.field(collapseBuilder.getField()).getValue(); if (collapseValue != null) {
public void addOptionalFilters(BoolQueryBuilder booleanQuery, Set<String> filters, String field) { if (!filters.isEmpty()) { BoolQueryBuilder subQuery = new BoolQueryBuilder(); for (String filter : filters) { subQuery.must(QueryBuilders.matchQuery(field, filter)); } booleanQuery.must(subQuery); } }
@Override protected QueryBuilder doRewrite(QueryRewriteContext context) throws IOException { try (XContentParser qSourceParser = XContentFactory.xContent(source) .createParser(context.getXContentRegistry(), LoggingDeprecationHandler.INSTANCE, source)) { final QueryBuilder queryBuilder = parseInnerQueryBuilder(qSourceParser).rewrite(context); if (boost() != DEFAULT_BOOST || queryName() != null) { final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); boolQueryBuilder.must(queryBuilder); return boolQueryBuilder; } return queryBuilder; } }
@Override protected QueryBuilder doRewrite(QueryRewriteContext context) throws IOException { try (XContentParser qSourceParser = XContentFactory.xContent(source) .createParser(context.getXContentRegistry(), LoggingDeprecationHandler.INSTANCE, source)) { final QueryBuilder queryBuilder = parseInnerQueryBuilder(qSourceParser).rewrite(context); if (boost() != DEFAULT_BOOST || queryName() != null) { final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); boolQueryBuilder.must(queryBuilder); return boolQueryBuilder; } return queryBuilder; } }