Skip to content

Commit f5d79c4

Browse files
committed
Query Refactoring: Moving parser NAME constant to corresponding query builder
As part of the query refactoring, this PR moves the NAME field that currently identifies each query parser to the corresponding query builder. The reason for this, as discussed in elastic#11121 (comment), is that we need still need to be able to link parser and builder implementations, but that the query builder is independent of the parser (queries don't necessarily need to be coverted to XContent any more). Builders don't need to know about their parsers, but parsers need to be linked to their respective builders. Closes elastic#11178
1 parent 77cb0ab commit f5d79c4

File tree

110 files changed

+418
-434
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+418
-434
lines changed

src/main/java/org/elasticsearch/index/query/AndQueryBuilder.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
package org.elasticsearch.index.query;
2121

2222
import com.google.common.collect.Lists;
23+
2324
import org.elasticsearch.common.xcontent.XContentBuilder;
2425

2526
import java.io.IOException;
@@ -32,6 +33,8 @@
3233
@Deprecated
3334
public class AndQueryBuilder extends QueryBuilder {
3435

36+
public static final String NAME = "and";
37+
3538
private ArrayList<QueryBuilder> filters = Lists.newArrayList();
3639

3740
private String queryName;
@@ -60,7 +63,7 @@ public AndQueryBuilder queryName(String queryName) {
6063

6164
@Override
6265
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
63-
builder.startObject(AndQueryParser.NAME);
66+
builder.startObject(NAME);
6467
builder.startArray("filters");
6568
for (QueryBuilder filter : filters) {
6669
filter.toXContent(builder, params);
@@ -73,7 +76,7 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep
7376
}
7477

7578
@Override
76-
protected String parserName() {
77-
return AndQueryParser.NAME;
79+
public String queryId() {
80+
return NAME;
7881
}
7982
}

src/main/java/org/elasticsearch/index/query/AndQueryParser.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,13 @@
3636
@Deprecated
3737
public class AndQueryParser extends BaseQueryParserTemp {
3838

39-
public static final String NAME = "and";
40-
4139
@Inject
4240
public AndQueryParser() {
4341
}
4442

4543
@Override
4644
public String[] names() {
47-
return new String[]{NAME};
45+
return new String[]{AndQueryBuilder.NAME};
4846
}
4947

5048
@Override

src/main/java/org/elasticsearch/index/query/BaseTermQueryBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Objects;
2929

3030
public abstract class BaseTermQueryBuilder<QB extends BaseTermQueryBuilder<QB>> extends QueryBuilder<QB> implements BoostableQueryBuilder<QB> {
31-
31+
3232
/** Name of field to match against. */
3333
protected final String fieldName;
3434

@@ -158,7 +158,7 @@ public QB boost(float boost) {
158158

159159
@Override
160160
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
161-
builder.startObject(parserName());
161+
builder.startObject(queryId());
162162
if (boost == 1.0f && queryName == null) {
163163
builder.field(fieldName, convertToStringIfBytesRef(this.value));
164164
} else {

src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
*/
3232
public class BoolQueryBuilder extends QueryBuilder implements BoostableQueryBuilder<BoolQueryBuilder> {
3333

34+
public static final String NAME = "bool";
35+
3436
private final List<QueryBuilder> mustClauses = new ArrayList<>();
3537

3638
private final List<QueryBuilder> mustNotClauses = new ArrayList<>();
@@ -160,7 +162,7 @@ public BoolQueryBuilder queryName(String queryName) {
160162

161163
@Override
162164
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
163-
builder.startObject("bool");
165+
builder.startObject(NAME);
164166
doXArrayContent("must", mustClauses, builder, params);
165167
doXArrayContent("filter", filterClauses, builder, params);
166168
doXArrayContent("must_not", mustNotClauses, builder, params);
@@ -200,7 +202,7 @@ private void doXArrayContent(String field, List<QueryBuilder> clauses, XContentB
200202
}
201203

202204
@Override
203-
protected String parserName() {
204-
return BoolQueryParser.NAME;
205+
public String queryId() {
206+
return NAME;
205207
}
206208
}

src/main/java/org/elasticsearch/index/query/BoolQueryParser.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,14 @@
3939
*/
4040
public class BoolQueryParser extends BaseQueryParserTemp {
4141

42-
public static final String NAME = "bool";
43-
4442
@Inject
4543
public BoolQueryParser(Settings settings) {
4644
BooleanQuery.setMaxClauseCount(settings.getAsInt("index.query.bool.max_clause_count", settings.getAsInt("indices.query.bool.max_clause_count", BooleanQuery.getMaxClauseCount())));
4745
}
4846

4947
@Override
5048
public String[] names() {
51-
return new String[]{NAME};
49+
return new String[]{BoolQueryBuilder.NAME};
5250
}
5351

5452
@Override

src/main/java/org/elasticsearch/index/query/BoostingQueryBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
*/
3838
public class BoostingQueryBuilder extends QueryBuilder implements BoostableQueryBuilder<BoostingQueryBuilder> {
3939

40+
public static final String NAME = "boosting";
41+
4042
private QueryBuilder positiveQuery;
4143

4244
private QueryBuilder negativeQuery;
@@ -81,7 +83,7 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep
8183
if (negativeBoost == -1) {
8284
throw new IllegalArgumentException("boosting query requires negativeBoost to be set");
8385
}
84-
builder.startObject(BoostingQueryParser.NAME);
86+
builder.startObject(NAME);
8587
builder.field("positive");
8688
positiveQuery.toXContent(builder, params);
8789
builder.field("negative");
@@ -96,7 +98,7 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep
9698
}
9799

98100
@Override
99-
protected String parserName() {
100-
return BoostingQueryParser.NAME;
101+
public String queryId() {
102+
return NAME;
101103
}
102104
}

src/main/java/org/elasticsearch/index/query/BoostingQueryParser.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,13 @@
3131
*/
3232
public class BoostingQueryParser extends BaseQueryParserTemp {
3333

34-
public static final String NAME = "boosting";
35-
3634
@Inject
3735
public BoostingQueryParser() {
3836
}
3937

4038
@Override
4139
public String[] names() {
42-
return new String[]{NAME};
40+
return new String[]{BoostingQueryBuilder.NAME};
4341
}
4442

4543
@Override

src/main/java/org/elasticsearch/index/query/CommonTermsQueryBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
*/
4545
public class CommonTermsQueryBuilder extends QueryBuilder implements BoostableQueryBuilder<CommonTermsQueryBuilder> {
4646

47+
public static final String NAME = "common";
48+
4749
public static enum Operator {
4850
OR, AND
4951
}
@@ -161,7 +163,7 @@ public CommonTermsQueryBuilder queryName(String queryName) {
161163

162164
@Override
163165
public void doXContent(XContentBuilder builder, Params params) throws IOException {
164-
builder.startObject(CommonTermsQueryParser.NAME);
166+
builder.startObject(NAME);
165167
builder.startObject(name);
166168

167169
builder.field("query", text);
@@ -202,7 +204,7 @@ public void doXContent(XContentBuilder builder, Params params) throws IOExceptio
202204
}
203205

204206
@Override
205-
protected String parserName() {
206-
return CommonTermsQueryParser.NAME;
207+
public String queryId() {
208+
return NAME;
207209
}
208210
}

src/main/java/org/elasticsearch/index/query/CommonTermsQueryParser.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@
3939
*/
4040
public class CommonTermsQueryParser extends BaseQueryParserTemp {
4141

42-
public static final String NAME = "common";
43-
4442
static final float DEFAULT_MAX_TERM_DOC_FREQ = 0.01f;
4543

4644
static final Occur DEFAULT_HIGH_FREQ_OCCUR = Occur.SHOULD;
@@ -56,7 +54,7 @@ public CommonTermsQueryParser() {
5654

5755
@Override
5856
public String[] names() {
59-
return new String[] { NAME };
57+
return new String[] { CommonTermsQueryBuilder.NAME };
6058
}
6159

6260
@Override

src/main/java/org/elasticsearch/index/query/ConstantScoreQueryBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
*/
3232
public class ConstantScoreQueryBuilder extends QueryBuilder implements BoostableQueryBuilder<ConstantScoreQueryBuilder> {
3333

34+
public static final String NAME = "constant_score";
35+
3436
private final QueryBuilder filterBuilder;
3537

3638
private float boost = -1;
@@ -57,7 +59,7 @@ public ConstantScoreQueryBuilder boost(float boost) {
5759

5860
@Override
5961
protected void doXContent(XContentBuilder builder, Params params) throws IOException {
60-
builder.startObject(ConstantScoreQueryParser.NAME);
62+
builder.startObject(NAME);
6163
builder.field("filter");
6264
filterBuilder.toXContent(builder, params);
6365

@@ -68,7 +70,7 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep
6870
}
6971

7072
@Override
71-
protected String parserName() {
72-
return ConstantScoreQueryParser.NAME;
73+
public String queryId() {
74+
return NAME;
7375
}
7476
}

0 commit comments

Comments
 (0)