Skip to content

Commit ff90873

Browse files
committed
Query DSL: query_string - Expose QueryParser#setAutoGeneratePhraseQueries, closes elastic#964.
1 parent 43bbc37 commit ff90873

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/MapperQueryParser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ public void reset(QueryParserSettings settings) {
8686
this.analyzer = settings.analyzer();
8787
setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT);
8888
setEnablePositionIncrements(settings.enablePositionIncrements());
89+
setAutoGeneratePhraseQueries(settings.autoGeneratePhraseQueries());
8990
setAllowLeadingWildcard(settings.allowLeadingWildcard());
9091
setLowercaseExpandedTerms(settings.lowercaseExpandedTerms());
9192
setPhraseSlop(settings.phraseSlop());

modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/QueryParserSettings.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class QueryParserSettings {
3131
private String defaultField;
3232
private float boost = 1.0f;
3333
private MapperQueryParser.Operator defaultOperator = QueryParser.Operator.OR;
34+
private boolean autoGeneratePhraseQueries = false;
3435
private boolean allowLeadingWildcard = true;
3536
private boolean lowercaseExpandedTerms = true;
3637
private boolean enablePositionIncrements = true;
@@ -73,6 +74,14 @@ public void defaultOperator(QueryParser.Operator defaultOperator) {
7374
this.defaultOperator = defaultOperator;
7475
}
7576

77+
public boolean autoGeneratePhraseQueries() {
78+
return autoGeneratePhraseQueries;
79+
}
80+
81+
public void autoGeneratePhraseQueries(boolean autoGeneratePhraseQueries) {
82+
this.autoGeneratePhraseQueries = autoGeneratePhraseQueries;
83+
}
84+
7685
public boolean allowLeadingWildcard() {
7786
return allowLeadingWildcard;
7887
}
@@ -151,6 +160,7 @@ public void analyzeWildcard(boolean analyzeWildcard) {
151160

152161
QueryParserSettings that = (QueryParserSettings) o;
153162

163+
if (autoGeneratePhraseQueries != that.autoGeneratePhraseQueries()) return false;
154164
if (allowLeadingWildcard != that.allowLeadingWildcard) return false;
155165
if (Float.compare(that.boost, boost) != 0) return false;
156166
if (enablePositionIncrements != that.enablePositionIncrements) return false;
@@ -173,6 +183,7 @@ public void analyzeWildcard(boolean analyzeWildcard) {
173183
result = 31 * result + (defaultField != null ? defaultField.hashCode() : 0);
174184
result = 31 * result + (boost != +0.0f ? Float.floatToIntBits(boost) : 0);
175185
result = 31 * result + (defaultOperator != null ? defaultOperator.hashCode() : 0);
186+
result = 31 * result + (autoGeneratePhraseQueries ? 1 : 0);
176187
result = 31 * result + (allowLeadingWildcard ? 1 : 0);
177188
result = 31 * result + (lowercaseExpandedTerms ? 1 : 0);
178189
result = 31 * result + (enablePositionIncrements ? 1 : 0);

modules/elasticsearch/src/main/java/org/elasticsearch/index/query/xcontent/FieldQueryParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ public class FieldQueryParser extends AbstractIndexComponent implements XContent
8383
qpSettings.enablePositionIncrements(parser.booleanValue());
8484
} else if ("allow_leading_wildcard".equals(currentFieldName) || "allowLeadingWildcard".equals(currentFieldName)) {
8585
qpSettings.allowLeadingWildcard(parser.booleanValue());
86+
} else if ("auto_generate_phrase_queries".equals(currentFieldName) || "autoGeneratePhraseQueries".equals(currentFieldName)) {
87+
qpSettings.autoGeneratePhraseQueries(parser.booleanValue());
8688
} else if ("lowercase_expanded_terms".equals(currentFieldName) || "lowercaseExpandedTerms".equals(currentFieldName)) {
8789
qpSettings.lowercaseExpandedTerms(parser.booleanValue());
8890
} else if ("phrase_slop".equals(currentFieldName) || "phraseSlop".equals(currentFieldName)) {

modules/elasticsearch/src/main/java/org/elasticsearch/index/query/xcontent/QueryStringQueryParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ public class QueryStringQueryParser extends AbstractIndexComponent implements XC
137137
qpSettings.analyzer(analysisService.analyzer(parser.text()));
138138
} else if ("allow_leading_wildcard".equals(currentFieldName) || "allowLeadingWildcard".equals(currentFieldName)) {
139139
qpSettings.allowLeadingWildcard(parser.booleanValue());
140+
} else if ("auto_generate_phrase_queries".equals(currentFieldName) || "autoGeneratePhraseQueries".equals(currentFieldName)) {
141+
qpSettings.autoGeneratePhraseQueries(parser.booleanValue());
140142
} else if ("lowercase_expanded_terms".equals(currentFieldName) || "lowercaseExpandedTerms".equals(currentFieldName)) {
141143
qpSettings.lowercaseExpandedTerms(parser.booleanValue());
142144
} else if ("enable_position_increments".equals(currentFieldName) || "enablePositionIncrements".equals(currentFieldName)) {

0 commit comments

Comments
 (0)