|
@@ -62,13 +62,13 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
private static final ParseField MINIMUM_NUMBER_SHOULD_MATCH = new ParseField("minimum_number_should_match");
|
|
|
private static final ParseField ADJUST_PURE_NEGATIVE = new ParseField("adjust_pure_negative");
|
|
|
|
|
|
- private final List<QueryBuilder<?>> mustClauses = new ArrayList<>();
|
|
|
+ private final List<QueryBuilder> mustClauses = new ArrayList<>();
|
|
|
|
|
|
- private final List<QueryBuilder<?>> mustNotClauses = new ArrayList<>();
|
|
|
+ private final List<QueryBuilder> mustNotClauses = new ArrayList<>();
|
|
|
|
|
|
- private final List<QueryBuilder<?>> filterClauses = new ArrayList<>();
|
|
|
+ private final List<QueryBuilder> filterClauses = new ArrayList<>();
|
|
|
|
|
|
- private final List<QueryBuilder<?>> shouldClauses = new ArrayList<>();
|
|
|
+ private final List<QueryBuilder> shouldClauses = new ArrayList<>();
|
|
|
|
|
|
private boolean disableCoord = DISABLE_COORD_DEFAULT;
|
|
|
|
|
@@ -111,7 +111,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
* Adds a query that <b>must</b> appear in the matching documents and will
|
|
|
* contribute to scoring. No <tt>null</tt> value allowed.
|
|
|
*/
|
|
|
- public BoolQueryBuilder must(QueryBuilder<?> queryBuilder) {
|
|
|
+ public BoolQueryBuilder must(QueryBuilder queryBuilder) {
|
|
|
if (queryBuilder == null) {
|
|
|
throw new IllegalArgumentException("inner bool query clause cannot be null");
|
|
|
}
|
|
@@ -122,7 +122,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
/**
|
|
|
* Gets the queries that <b>must</b> appear in the matching documents.
|
|
|
*/
|
|
|
- public List<QueryBuilder<?>> must() {
|
|
|
+ public List<QueryBuilder> must() {
|
|
|
return this.mustClauses;
|
|
|
}
|
|
|
|
|
@@ -130,7 +130,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
* Adds a query that <b>must</b> appear in the matching documents but will
|
|
|
* not contribute to scoring. No <tt>null</tt> value allowed.
|
|
|
*/
|
|
|
- public BoolQueryBuilder filter(QueryBuilder<?> queryBuilder) {
|
|
|
+ public BoolQueryBuilder filter(QueryBuilder queryBuilder) {
|
|
|
if (queryBuilder == null) {
|
|
|
throw new IllegalArgumentException("inner bool query clause cannot be null");
|
|
|
}
|
|
@@ -141,7 +141,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
/**
|
|
|
* Gets the queries that <b>must</b> appear in the matching documents but don't contribute to scoring
|
|
|
*/
|
|
|
- public List<QueryBuilder<?>> filter() {
|
|
|
+ public List<QueryBuilder> filter() {
|
|
|
return this.filterClauses;
|
|
|
}
|
|
|
|
|
@@ -149,7 +149,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
* Adds a query that <b>must not</b> appear in the matching documents.
|
|
|
* No <tt>null</tt> value allowed.
|
|
|
*/
|
|
|
- public BoolQueryBuilder mustNot(QueryBuilder<?> queryBuilder) {
|
|
|
+ public BoolQueryBuilder mustNot(QueryBuilder queryBuilder) {
|
|
|
if (queryBuilder == null) {
|
|
|
throw new IllegalArgumentException("inner bool query clause cannot be null");
|
|
|
}
|
|
@@ -160,7 +160,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
/**
|
|
|
* Gets the queries that <b>must not</b> appear in the matching documents.
|
|
|
*/
|
|
|
- public List<QueryBuilder<?>> mustNot() {
|
|
|
+ public List<QueryBuilder> mustNot() {
|
|
|
return this.mustNotClauses;
|
|
|
}
|
|
|
|
|
@@ -171,7 +171,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
*
|
|
|
* @see #minimumNumberShouldMatch(int)
|
|
|
*/
|
|
|
- public BoolQueryBuilder should(QueryBuilder<?> queryBuilder) {
|
|
|
+ public BoolQueryBuilder should(QueryBuilder queryBuilder) {
|
|
|
if (queryBuilder == null) {
|
|
|
throw new IllegalArgumentException("inner bool query clause cannot be null");
|
|
|
}
|
|
@@ -185,7 +185,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
* @see #should(QueryBuilder)
|
|
|
* @see #minimumNumberShouldMatch(int)
|
|
|
*/
|
|
|
- public List<QueryBuilder<?>> should() {
|
|
|
+ public List<QueryBuilder> should() {
|
|
|
return this.shouldClauses;
|
|
|
}
|
|
|
|
|
@@ -288,13 +288,13 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
builder.endObject();
|
|
|
}
|
|
|
|
|
|
- private static void doXArrayContent(String field, List<QueryBuilder<?>> clauses, XContentBuilder builder, Params params)
|
|
|
+ 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) {
|
|
|
+ for (QueryBuilder clause : clauses) {
|
|
|
clause.toXContent(builder, params);
|
|
|
}
|
|
|
builder.endArray();
|
|
@@ -308,15 +308,15 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
float boost = AbstractQueryBuilder.DEFAULT_BOOST;
|
|
|
String minimumShouldMatch = null;
|
|
|
|
|
|
- final List<QueryBuilder<?>> mustClauses = new ArrayList<>();
|
|
|
- final List<QueryBuilder<?>> mustNotClauses = new ArrayList<>();
|
|
|
- final List<QueryBuilder<?>> shouldClauses = new ArrayList<>();
|
|
|
- final List<QueryBuilder<?>> filterClauses = new ArrayList<>();
|
|
|
+ final List<QueryBuilder> mustClauses = new ArrayList<>();
|
|
|
+ final List<QueryBuilder> mustNotClauses = new ArrayList<>();
|
|
|
+ final List<QueryBuilder> shouldClauses = new ArrayList<>();
|
|
|
+ final List<QueryBuilder> filterClauses = new ArrayList<>();
|
|
|
String queryName = null;
|
|
|
|
|
|
String currentFieldName = null;
|
|
|
XContentParser.Token token;
|
|
|
- QueryBuilder<?> query;
|
|
|
+ QueryBuilder query;
|
|
|
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
|
|
|
if (token == XContentParser.Token.FIELD_NAME) {
|
|
|
currentFieldName = parser.currentName();
|
|
@@ -387,16 +387,16 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
}
|
|
|
}
|
|
|
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
|
|
|
- for (QueryBuilder<?> queryBuilder : mustClauses) {
|
|
|
+ for (QueryBuilder queryBuilder : mustClauses) {
|
|
|
boolQuery.must(queryBuilder);
|
|
|
}
|
|
|
- for (QueryBuilder<?> queryBuilder : mustNotClauses) {
|
|
|
+ for (QueryBuilder queryBuilder : mustNotClauses) {
|
|
|
boolQuery.mustNot(queryBuilder);
|
|
|
}
|
|
|
- for (QueryBuilder<?> queryBuilder : shouldClauses) {
|
|
|
+ for (QueryBuilder queryBuilder : shouldClauses) {
|
|
|
boolQuery.should(queryBuilder);
|
|
|
}
|
|
|
- for (QueryBuilder<?> queryBuilder : filterClauses) {
|
|
|
+ for (QueryBuilder queryBuilder : filterClauses) {
|
|
|
boolQuery.filter(queryBuilder);
|
|
|
}
|
|
|
boolQuery.boost(boost);
|
|
@@ -436,8 +436,8 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
}
|
|
|
|
|
|
private static void addBooleanClauses(QueryShardContext context, BooleanQuery.Builder booleanQueryBuilder,
|
|
|
- List<QueryBuilder<?>> clauses, Occur occurs) throws IOException {
|
|
|
- for (QueryBuilder<?> query : clauses) {
|
|
|
+ List<QueryBuilder> clauses, Occur occurs) throws IOException {
|
|
|
+ for (QueryBuilder query : clauses) {
|
|
|
Query luceneQuery = null;
|
|
|
switch (occurs) {
|
|
|
case MUST:
|
|
@@ -473,7 +473,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- protected QueryBuilder<?> doRewrite(QueryRewriteContext queryRewriteContext) throws IOException {
|
|
|
+ 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();
|
|
@@ -498,20 +498,20 @@ public class BoolQueryBuilder extends AbstractQueryBuilder<BoolQueryBuilder> {
|
|
|
|
|
|
@Override
|
|
|
protected void extractInnerHitBuilders(Map<String, InnerHitBuilder> innerHits) {
|
|
|
- List<QueryBuilder<?>> clauses = new ArrayList<>(filter());
|
|
|
+ List<QueryBuilder> clauses = new ArrayList<>(filter());
|
|
|
clauses.addAll(must());
|
|
|
clauses.addAll(should());
|
|
|
// no need to include must_not (since there will be no hits for it)
|
|
|
- for (QueryBuilder<?> clause : clauses) {
|
|
|
+ for (QueryBuilder clause : clauses) {
|
|
|
InnerHitBuilder.extractInnerHits(clause, innerHits);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private static boolean rewriteClauses(QueryRewriteContext queryRewriteContext, List<QueryBuilder<?>> builders,
|
|
|
- Consumer<QueryBuilder<?>> consumer) throws IOException {
|
|
|
+ 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);
|
|
|
+ for (QueryBuilder builder : builders) {
|
|
|
+ QueryBuilder result = builder.rewrite(queryRewriteContext);
|
|
|
if (result != builder) {
|
|
|
changed = true;
|
|
|
}
|