21
21
22
22
import com .google .common .base .Objects ;
23
23
import com .google .common .collect .ImmutableMap ;
24
-
25
24
import org .apache .lucene .analysis .Analyzer ;
26
25
import org .apache .lucene .analysis .TokenStream ;
27
26
import org .apache .lucene .analysis .tokenattributes .CharTermAttribute ;
37
36
import org .apache .lucene .util .automaton .RegExp ;
38
37
import org .elasticsearch .common .lucene .search .Queries ;
39
38
import org .elasticsearch .common .unit .Fuzziness ;
40
- import org .elasticsearch .index .mapper .FieldMapper ;
39
+ import org .elasticsearch .index .mapper .MappedFieldType ;
41
40
import org .elasticsearch .index .mapper .MapperService ;
42
41
import org .elasticsearch .index .mapper .core .DateFieldMapper ;
43
42
import org .elasticsearch .index .query .QueryParseContext ;
@@ -77,7 +76,7 @@ public class MapperQueryParser extends QueryParser {
77
76
private boolean forcedAnalyzer ;
78
77
private boolean forcedQuoteAnalyzer ;
79
78
80
- private FieldMapper currentMapper ;
79
+ private MappedFieldType currentFieldType ;
81
80
82
81
private boolean analyzeWildcard ;
83
82
@@ -148,8 +147,8 @@ Query handleBareFuzzy(String qfield, Token fuzzySlop, String termImage) throws P
148
147
149
148
@ Override
150
149
protected Query newTermQuery (Term term ) {
151
- if (currentMapper != null ) {
152
- Query termQuery = currentMapper .queryStringTermQuery (term );
150
+ if (currentFieldType != null ) {
151
+ Query termQuery = currentFieldType .queryStringTermQuery (term );
153
152
if (termQuery != null ) {
154
153
return termQuery ;
155
154
}
@@ -224,33 +223,33 @@ private Query getFieldQuerySingle(String field, String queryText, boolean quoted
224
223
return getRangeQuerySingle (field , null , queryText .substring (1 ), true , false );
225
224
}
226
225
}
227
- currentMapper = null ;
226
+ currentFieldType = null ;
228
227
Analyzer oldAnalyzer = getAnalyzer ();
229
228
try {
230
229
if (quoted ) {
231
230
setAnalyzer (quoteAnalyzer );
232
231
if (quoteFieldSuffix != null ) {
233
- currentMapper = parseContext .fieldMapper (field + quoteFieldSuffix );
232
+ currentFieldType = parseContext .fieldMapper (field + quoteFieldSuffix );
234
233
}
235
234
}
236
- if (currentMapper == null ) {
237
- currentMapper = parseContext .fieldMapper (field );
235
+ if (currentFieldType == null ) {
236
+ currentFieldType = parseContext .fieldMapper (field );
238
237
}
239
- if (currentMapper != null ) {
238
+ if (currentFieldType != null ) {
240
239
if (quoted ) {
241
240
if (!forcedQuoteAnalyzer ) {
242
- setAnalyzer (parseContext .getSearchQuoteAnalyzer (currentMapper ));
241
+ setAnalyzer (parseContext .getSearchQuoteAnalyzer (currentFieldType ));
243
242
}
244
243
} else {
245
244
if (!forcedAnalyzer ) {
246
- setAnalyzer (parseContext .getSearchAnalyzer (currentMapper ));
245
+ setAnalyzer (parseContext .getSearchAnalyzer (currentFieldType ));
247
246
}
248
247
}
249
- if (currentMapper != null ) {
248
+ if (currentFieldType != null ) {
250
249
Query query = null ;
251
- if (currentMapper .useTermQueryWithQueryString ()) {
250
+ if (currentFieldType .useTermQueryWithQueryString ()) {
252
251
try {
253
- query = currentMapper .termQuery (queryText , parseContext );
252
+ query = currentFieldType .termQuery (queryText , parseContext );
254
253
} catch (RuntimeException e ) {
255
254
if (settings .lenient ()) {
256
255
return null ;
@@ -260,7 +259,7 @@ private Query getFieldQuerySingle(String field, String queryText, boolean quoted
260
259
}
261
260
}
262
261
if (query == null ) {
263
- query = super .getFieldQuery (currentMapper . fieldType () .names ().indexName (), queryText , quoted );
262
+ query = super .getFieldQuery (currentFieldType .names ().indexName (), queryText , quoted );
264
263
}
265
264
return query ;
266
265
}
@@ -361,20 +360,20 @@ protected Query getRangeQuery(String field, String part1, String part2, boolean
361
360
}
362
361
363
362
private Query getRangeQuerySingle (String field , String part1 , String part2 , boolean startInclusive , boolean endInclusive ) {
364
- currentMapper = parseContext .fieldMapper (field );
365
- if (currentMapper != null ) {
366
- if (lowercaseExpandedTerms && !currentMapper .isNumeric ()) {
363
+ currentFieldType = parseContext .fieldMapper (field );
364
+ if (currentFieldType != null ) {
365
+ if (lowercaseExpandedTerms && !currentFieldType .isNumeric ()) {
367
366
part1 = part1 == null ? null : part1 .toLowerCase (locale );
368
367
part2 = part2 == null ? null : part2 .toLowerCase (locale );
369
368
}
370
369
371
370
try {
372
371
Query rangeQuery ;
373
- if (currentMapper instanceof DateFieldMapper && settings .timeZone () != null ) {
374
- DateFieldMapper dateFieldMapper = (DateFieldMapper ) this .currentMapper ;
375
- rangeQuery = dateFieldMapper . fieldType () .rangeQuery (part1 , part2 , startInclusive , endInclusive , settings .timeZone (), null , parseContext );
372
+ if (currentFieldType instanceof DateFieldMapper . DateFieldType && settings .timeZone () != null ) {
373
+ DateFieldMapper . DateFieldType dateFieldType = (DateFieldMapper . DateFieldType ) this .currentFieldType ;
374
+ rangeQuery = dateFieldType .rangeQuery (part1 , part2 , startInclusive , endInclusive , settings .timeZone (), null , parseContext );
376
375
} else {
377
- rangeQuery = currentMapper .rangeQuery (part1 , part2 , startInclusive , endInclusive , parseContext );
376
+ rangeQuery = currentFieldType .rangeQuery (part1 , part2 , startInclusive , endInclusive , parseContext );
378
377
}
379
378
return rangeQuery ;
380
379
} catch (RuntimeException e ) {
@@ -426,11 +425,11 @@ protected Query getFuzzyQuery(String field, String termStr, String minSimilarity
426
425
}
427
426
428
427
private Query getFuzzyQuerySingle (String field , String termStr , String minSimilarity ) throws ParseException {
429
- currentMapper = parseContext .fieldMapper (field );
430
- if (currentMapper != null ) {
428
+ currentFieldType = parseContext .fieldMapper (field );
429
+ if (currentFieldType != null ) {
431
430
try {
432
431
//LUCENE 4 UPGRADE I disabled transpositions here by default - maybe this needs to be changed
433
- return currentMapper .fuzzyQuery (termStr , Fuzziness .build (minSimilarity ), fuzzyPrefixLength , settings .fuzzyMaxExpansions (), false );
432
+ return currentFieldType .fuzzyQuery (termStr , Fuzziness .build (minSimilarity ), fuzzyPrefixLength , settings .fuzzyMaxExpansions (), false );
434
433
} catch (RuntimeException e ) {
435
434
if (settings .lenient ()) {
436
435
return null ;
@@ -495,20 +494,20 @@ protected Query getPrefixQuery(String field, String termStr) throws ParseExcepti
495
494
}
496
495
497
496
private Query getPrefixQuerySingle (String field , String termStr ) throws ParseException {
498
- currentMapper = null ;
497
+ currentFieldType = null ;
499
498
Analyzer oldAnalyzer = getAnalyzer ();
500
499
try {
501
- currentMapper = parseContext .fieldMapper (field );
502
- if (currentMapper != null ) {
500
+ currentFieldType = parseContext .fieldMapper (field );
501
+ if (currentFieldType != null ) {
503
502
if (!forcedAnalyzer ) {
504
- setAnalyzer (parseContext .getSearchAnalyzer (currentMapper ));
503
+ setAnalyzer (parseContext .getSearchAnalyzer (currentFieldType ));
505
504
}
506
505
Query query = null ;
507
- if (currentMapper .useTermQueryWithQueryString ()) {
508
- query = currentMapper .prefixQuery (termStr , multiTermRewriteMethod , parseContext );
506
+ if (currentFieldType .useTermQueryWithQueryString ()) {
507
+ query = currentFieldType .prefixQuery (termStr , multiTermRewriteMethod , parseContext );
509
508
}
510
509
if (query == null ) {
511
- query = getPossiblyAnalyzedPrefixQuery (currentMapper . fieldType () .names ().indexName (), termStr );
510
+ query = getPossiblyAnalyzedPrefixQuery (currentFieldType .names ().indexName (), termStr );
512
511
}
513
512
return query ;
514
513
}
@@ -636,15 +635,15 @@ protected Query getWildcardQuery(String field, String termStr) throws ParseExcep
636
635
637
636
private Query getWildcardQuerySingle (String field , String termStr ) throws ParseException {
638
637
String indexedNameField = field ;
639
- currentMapper = null ;
638
+ currentFieldType = null ;
640
639
Analyzer oldAnalyzer = getAnalyzer ();
641
640
try {
642
- currentMapper = parseContext .fieldMapper (field );
643
- if (currentMapper != null ) {
641
+ currentFieldType = parseContext .fieldMapper (field );
642
+ if (currentFieldType != null ) {
644
643
if (!forcedAnalyzer ) {
645
- setAnalyzer (parseContext .getSearchAnalyzer (currentMapper ));
644
+ setAnalyzer (parseContext .getSearchAnalyzer (currentFieldType ));
646
645
}
647
- indexedNameField = currentMapper . fieldType () .names ().indexName ();
646
+ indexedNameField = currentFieldType .names ().indexName ();
648
647
return getPossiblyAnalyzedWildcardQuery (indexedNameField , termStr );
649
648
}
650
649
return getPossiblyAnalyzedWildcardQuery (indexedNameField , termStr );
@@ -768,17 +767,17 @@ protected Query getRegexpQuery(String field, String termStr) throws ParseExcepti
768
767
}
769
768
770
769
private Query getRegexpQuerySingle (String field , String termStr ) throws ParseException {
771
- currentMapper = null ;
770
+ currentFieldType = null ;
772
771
Analyzer oldAnalyzer = getAnalyzer ();
773
772
try {
774
- currentMapper = parseContext .fieldMapper (field );
775
- if (currentMapper != null ) {
773
+ currentFieldType = parseContext .fieldMapper (field );
774
+ if (currentFieldType != null ) {
776
775
if (!forcedAnalyzer ) {
777
- setAnalyzer (parseContext .getSearchAnalyzer (currentMapper ));
776
+ setAnalyzer (parseContext .getSearchAnalyzer (currentFieldType ));
778
777
}
779
778
Query query = null ;
780
- if (currentMapper .useTermQueryWithQueryString ()) {
781
- query = currentMapper .regexpQuery (termStr , RegExp .ALL , maxDeterminizedStates , multiTermRewriteMethod , parseContext );
779
+ if (currentFieldType .useTermQueryWithQueryString ()) {
780
+ query = currentFieldType .regexpQuery (termStr , RegExp .ALL , maxDeterminizedStates , multiTermRewriteMethod , parseContext );
782
781
}
783
782
if (query == null ) {
784
783
query = super .getRegexpQuery (field , termStr );
0 commit comments