3939import org .elasticsearch .common .settings .Setting ;
4040import org .elasticsearch .common .settings .Settings ;
4141import org .elasticsearch .core .Tuple ;
42+ import org .elasticsearch .index .IndexSettings ;
4243import org .elasticsearch .index .IndexVersion ;
4344import org .elasticsearch .index .IndexVersions ;
4445import org .elasticsearch .index .mapper .BinaryFieldMapper ;
@@ -101,9 +102,7 @@ public class PercolatorFieldMapper extends FieldMapper {
101102
102103 @ Override
103104 public FieldMapper .Builder getMergeBuilder () {
104- return new Builder (leafName (), searchExecutionContext , mapUnmappedFieldsAsText , indexCreatedVersion , clusterTransportVersion ).init (
105- this
106- );
105+ return new Builder (leafName (), searchExecutionContext , mapUnmappedFieldsAsText , indexSettings , clusterTransportVersion ).init (this );
107106 }
108107
109108 static class Builder extends FieldMapper .Builder {
@@ -113,20 +112,20 @@ static class Builder extends FieldMapper.Builder {
113112 private final Supplier <SearchExecutionContext > searchExecutionContext ;
114113 private final boolean mapUnmappedFieldsAsText ;
115114
116- private final IndexVersion indexCreatedVersion ;
115+ private final IndexSettings indexSettings ;
117116 private final Supplier <TransportVersion > clusterTransportVersion ;
118117
119118 Builder (
120119 String fieldName ,
121120 Supplier <SearchExecutionContext > searchExecutionContext ,
122121 boolean mapUnmappedFieldsAsText ,
123- IndexVersion indexCreatedVersion ,
122+ IndexSettings indexSettings ,
124123 Supplier <TransportVersion > clusterTransportVersion
125124 ) {
126125 super (fieldName );
127126 this .searchExecutionContext = searchExecutionContext ;
128127 this .mapUnmappedFieldsAsText = mapUnmappedFieldsAsText ;
129- this .indexCreatedVersion = Objects .requireNonNull (indexCreatedVersion );
128+ this .indexSettings = Objects .requireNonNull (indexSettings );
130129 this .clusterTransportVersion = clusterTransportVersion ;
131130 }
132131
@@ -139,25 +138,17 @@ protected Parameter<?>[] getParameters() {
139138 public PercolatorFieldMapper build (MapperBuilderContext context ) {
140139 PercolatorFieldType fieldType = new PercolatorFieldType (context .buildFullName (leafName ()), meta .getValue ());
141140 context = context .createChildContext (leafName (), null );
142- KeywordFieldMapper extractedTermsField = createExtractQueryFieldBuilder (
143- EXTRACTED_TERMS_FIELD_NAME ,
144- context ,
145- indexCreatedVersion
146- );
141+ KeywordFieldMapper extractedTermsField = createExtractQueryFieldBuilder (EXTRACTED_TERMS_FIELD_NAME , context , indexSettings );
147142 fieldType .queryTermsField = extractedTermsField .fieldType ();
148- KeywordFieldMapper extractionResultField = createExtractQueryFieldBuilder (
149- EXTRACTION_RESULT_FIELD_NAME ,
150- context ,
151- indexCreatedVersion
152- );
143+ KeywordFieldMapper extractionResultField = createExtractQueryFieldBuilder (EXTRACTION_RESULT_FIELD_NAME , context , indexSettings );
153144 fieldType .extractionResultField = extractionResultField .fieldType ();
154145 BinaryFieldMapper queryBuilderField = createQueryBuilderFieldBuilder (context );
155146 fieldType .queryBuilderField = queryBuilderField .fieldType ();
156147 // Range field is of type ip, because that matches closest with BinaryRange field. Otherwise we would
157148 // have to introduce a new field type...
158149 RangeFieldMapper rangeFieldMapper = createExtractedRangeFieldBuilder (RANGE_FIELD_NAME , RangeType .IP , context );
159150 fieldType .rangeField = rangeFieldMapper .fieldType ();
160- NumberFieldMapper minimumShouldMatchFieldMapper = createMinimumShouldMatchField (context , indexCreatedVersion );
151+ NumberFieldMapper minimumShouldMatchFieldMapper = createMinimumShouldMatchField (context , indexSettings );
161152 fieldType .minimumShouldMatchField = minimumShouldMatchFieldMapper .fieldType ();
162153 fieldType .mapUnmappedFieldsAsText = mapUnmappedFieldsAsText ;
163154
@@ -172,17 +163,13 @@ public PercolatorFieldMapper build(MapperBuilderContext context) {
172163 rangeFieldMapper ,
173164 minimumShouldMatchFieldMapper ,
174165 mapUnmappedFieldsAsText ,
175- indexCreatedVersion ,
166+ indexSettings ,
176167 clusterTransportVersion
177168 );
178169 }
179170
180- static KeywordFieldMapper createExtractQueryFieldBuilder (
181- String name ,
182- MapperBuilderContext context ,
183- IndexVersion indexCreatedVersion
184- ) {
185- KeywordFieldMapper .Builder queryMetadataFieldBuilder = new KeywordFieldMapper .Builder (name , indexCreatedVersion );
171+ static KeywordFieldMapper createExtractQueryFieldBuilder (String name , MapperBuilderContext context , IndexSettings indexSettings ) {
172+ KeywordFieldMapper .Builder queryMetadataFieldBuilder = new KeywordFieldMapper .Builder (name , indexSettings );
186173 queryMetadataFieldBuilder .docValues (false );
187174 return queryMetadataFieldBuilder .build (context );
188175 }
@@ -200,11 +187,11 @@ static RangeFieldMapper createExtractedRangeFieldBuilder(String name, RangeType
200187 return builder .build (context );
201188 }
202189
203- static NumberFieldMapper createMinimumShouldMatchField (MapperBuilderContext context , IndexVersion indexCreatedVersion ) {
190+ static NumberFieldMapper createMinimumShouldMatchField (MapperBuilderContext context , IndexSettings indexSettings ) {
204191 NumberFieldMapper .Builder builder = NumberFieldMapper .Builder .docValuesOnly (
205192 MINIMUM_SHOULD_MATCH_FIELD_NAME ,
206193 NumberFieldMapper .NumberType .INTEGER ,
207- indexCreatedVersion
194+ indexSettings . getIndexVersionCreated ()
208195 );
209196 return builder .build (context );
210197 }
@@ -219,7 +206,7 @@ public Builder parse(String name, Map<String, Object> node, MappingParserContext
219206 name ,
220207 parserContext .searchExecutionContext (),
221208 getMapUnmappedFieldAsText (parserContext .getSettings ()),
222- parserContext .indexVersionCreated (),
209+ parserContext .getIndexSettings (),
223210 parserContext .clusterTransportVersion ()
224211 );
225212 }
@@ -367,7 +354,7 @@ static Tuple<List<BytesRef>, Map<String, List<byte[]>>> extractTermsAndRanges(In
367354 private final NumberFieldMapper minimumShouldMatchFieldMapper ;
368355 private final RangeFieldMapper rangeFieldMapper ;
369356 private final boolean mapUnmappedFieldsAsText ;
370- private final IndexVersion indexCreatedVersion ;
357+ private final IndexSettings indexSettings ;
371358 private final Supplier <TransportVersion > clusterTransportVersion ;
372359
373360 PercolatorFieldMapper (
@@ -381,7 +368,7 @@ static Tuple<List<BytesRef>, Map<String, List<byte[]>>> extractTermsAndRanges(In
381368 RangeFieldMapper rangeFieldMapper ,
382369 NumberFieldMapper minimumShouldMatchFieldMapper ,
383370 boolean mapUnmappedFieldsAsText ,
384- IndexVersion indexCreatedVersion ,
371+ IndexSettings indexSettings ,
385372 Supplier <TransportVersion > clusterTransportVersion
386373 ) {
387374 super (simpleName , mappedFieldType , builderParams );
@@ -392,7 +379,7 @@ static Tuple<List<BytesRef>, Map<String, List<byte[]>>> extractTermsAndRanges(In
392379 this .minimumShouldMatchFieldMapper = minimumShouldMatchFieldMapper ;
393380 this .rangeFieldMapper = rangeFieldMapper ;
394381 this .mapUnmappedFieldsAsText = mapUnmappedFieldsAsText ;
395- this .indexCreatedVersion = indexCreatedVersion ;
382+ this .indexSettings = indexSettings ;
396383 this .clusterTransportVersion = clusterTransportVersion ;
397384 }
398385
0 commit comments