Skip to content

Commit 9f3b251

Browse files
authored
Fix split package org.apache.lucene.queryparser.classic (#78307)
With LUCENE-10115 integrated, we can now remove the package -private dependency with org.apache.lucene.queryparser.classic. XQueryParser, and override getFuzzyDistance to customise the calculation of the similarity distance for fuzzy queries.
1 parent 28c74a0 commit 9f3b251

File tree

3 files changed

+9
-40
lines changed

3 files changed

+9
-40
lines changed

server/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,7 @@ tasks.named("licenseHeaders").configure {
269269

270270
tasks.named('splitPackagesAudit').configure {
271271
// Lucene packages should be owned by Lucene!
272-
ignoreClasses 'org.apache.lucene.queryparser.classic.XQueryParser',
273-
'org.apache.lucene.queries.BinaryDocValuesRangeQuery',
272+
ignoreClasses 'org.apache.lucene.queries.BinaryDocValuesRangeQuery',
274273
'org.apache.lucene.queries.BlendedTermQuery',
275274
'org.apache.lucene.queries.SpanMatchNoDocsQuery',
276275
'org.apache.lucene.search.grouping.CollapseTopFieldDocs',

server/src/main/java/org/apache/lucene/queryparser/classic/XQueryParser.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

server/src/main/java/org/elasticsearch/index/search/QueryStringQueryParser.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import org.apache.lucene.queries.spans.SpanOrQuery;
1818
import org.apache.lucene.queries.spans.SpanQuery;
1919
import org.apache.lucene.queryparser.classic.ParseException;
20+
import org.apache.lucene.queryparser.classic.QueryParser;
2021
import org.apache.lucene.queryparser.classic.Token;
21-
import org.apache.lucene.queryparser.classic.XQueryParser;
2222
import org.apache.lucene.search.BooleanClause;
2323
import org.apache.lucene.search.BoostAttribute;
2424
import org.apache.lucene.search.BoostQuery;
@@ -64,12 +64,12 @@
6464
import static org.elasticsearch.index.search.QueryParserHelper.resolveMappingFields;
6565

6666
/**
67-
* A {@link XQueryParser} that uses the {@link MapperService} in order to build smarter
67+
* A {@link QueryParser} that uses the {@link MapperService} in order to build smarter
6868
* queries based on the mapping information.
69-
* This class uses {@link MultiMatchQueryParser} to build the text query around operators and {@link XQueryParser}
69+
* This class uses {@link MultiMatchQueryParser} to build the text query around operators and {@link QueryParser}
7070
* to assemble the result logically.
7171
*/
72-
public class QueryStringQueryParser extends XQueryParser {
72+
public class QueryStringQueryParser extends QueryParser {
7373
private static final String EXISTS_FIELD = "_exists_";
7474

7575
private final SearchExecutionContext context;
@@ -433,12 +433,11 @@ private Query getRangeQuerySingle(String field, String part1, String part2,
433433
}
434434

435435
@Override
436-
protected Query handleBareFuzzy(String field, Token fuzzySlop, String termImage) throws ParseException {
437-
if (fuzzySlop.image.length() == 1) {
438-
return getFuzzyQuery(field, termImage, fuzziness.asDistance(termImage));
436+
protected float getFuzzyDistance(Token fuzzyToken, String termStr) {
437+
if (fuzzyToken.image.length() == 1) {
438+
return fuzziness.asDistance(termStr);
439439
}
440-
float distance = Fuzziness.fromString(fuzzySlop.image.substring(1)).asDistance(termImage);
441-
return getFuzzyQuery(field, termImage, distance);
440+
return Fuzziness.fromString(fuzzyToken.image.substring(1)).asDistance(termStr);
442441
}
443442

444443
@Override

0 commit comments

Comments
 (0)