@@ -114,17 +114,17 @@ public static class Builder extends MetadataFieldMapper.Builder {
114
114
);
115
115
116
116
private final IndexMode indexMode ;
117
+ private final boolean setDefaultSytheticMode ;
117
118
118
- public Builder (IndexMode indexMode , IndexVersion indexVersion ) {
119
+ public Builder (IndexMode indexMode , boolean setDefaultSytheticMode ) {
119
120
super (Defaults .NAME );
120
121
this .indexMode = indexMode ;
122
+ this .setDefaultSytheticMode = setDefaultSytheticMode ;
121
123
this .mode = new Parameter <>(
122
124
"mode" ,
123
125
true ,
124
126
// The default mode for TimeSeries is left empty on purpose, so that mapping printings include the synthetic source mode.
125
- () -> getIndexMode () == IndexMode .TIME_SERIES && indexVersion .between (IndexVersion .V_8_7_0 , IndexVersion .V_8_10_0 )
126
- ? Mode .SYNTHETIC
127
- : null ,
127
+ () -> getIndexMode () == IndexMode .TIME_SERIES && setDefaultSytheticMode ? Mode .SYNTHETIC : null ,
128
128
(n , c , o ) -> Mode .valueOf (o .toString ().toUpperCase (Locale .ROOT )),
129
129
m -> toType (m ).enabled .explicit () ? null : toType (m ).mode ,
130
130
(b , n , v ) -> b .field (n , v .toString ().toLowerCase (Locale .ROOT )),
@@ -171,7 +171,8 @@ public SourceFieldMapper build() {
171
171
enabled .get (),
172
172
includes .getValue ().toArray (String []::new ),
173
173
excludes .getValue ().toArray (String []::new ),
174
- indexMode
174
+ indexMode ,
175
+ setDefaultSytheticMode
175
176
);
176
177
if (indexMode != null ) {
177
178
indexMode .validateSourceFieldMapper (sourceFieldMapper );
@@ -188,7 +189,10 @@ private IndexMode getIndexMode() {
188
189
c -> c .getIndexSettings ().getMode () == IndexMode .TIME_SERIES
189
190
? c .getIndexSettings ().getIndexVersionCreated ().onOrAfter (IndexVersion .V_8_7_0 ) ? TSDB_DEFAULT : TSDB_LEGACY_DEFAULT
190
191
: DEFAULT ,
191
- c -> new Builder (c .getIndexSettings ().getMode (), c .getIndexSettings ().getIndexVersionCreated ())
192
+ c -> new Builder (
193
+ c .getIndexSettings ().getMode (),
194
+ c .getIndexSettings ().getIndexVersionCreated ().between (IndexVersion .V_8_7_0 , IndexVersion .V_8_10_0 )
195
+ )
192
196
);
193
197
194
198
static final class SourceFieldType extends MappedFieldType {
@@ -230,8 +234,25 @@ public Query termQuery(Object value, SearchExecutionContext context) {
230
234
private final SourceFilter sourceFilter ;
231
235
232
236
private final IndexMode indexMode ;
237
+ private final boolean setDefaultSytheticMode ;
238
+
239
+ private SourceFieldMapper (
240
+ Mode mode ,
241
+ Explicit <Boolean > enabled ,
242
+ String [] includes ,
243
+ String [] excludes ,
244
+ IndexMode indexMode ) {
245
+ this (mode , enabled , includes , excludes , indexMode , false );
246
+ }
233
247
234
- private SourceFieldMapper (Mode mode , Explicit <Boolean > enabled , String [] includes , String [] excludes , IndexMode indexMode ) {
248
+ private SourceFieldMapper (
249
+ Mode mode ,
250
+ Explicit <Boolean > enabled ,
251
+ String [] includes ,
252
+ String [] excludes ,
253
+ IndexMode indexMode ,
254
+ boolean setDefaultSytheticMode
255
+ ) {
235
256
super (new SourceFieldType ((enabled .explicit () && enabled .value ()) || (enabled .explicit () == false && mode != Mode .DISABLED )));
236
257
assert enabled .explicit () == false || mode == null ;
237
258
this .mode = mode ;
@@ -244,6 +265,7 @@ private SourceFieldMapper(Mode mode, Explicit<Boolean> enabled, String[] include
244
265
}
245
266
this .complete = stored () && sourceFilter == null ;
246
267
this .indexMode = indexMode ;
268
+ this .setDefaultSytheticMode = setDefaultSytheticMode ;
247
269
}
248
270
249
271
private static SourceFilter buildSourceFilter (String [] includes , String [] excludes ) {
@@ -313,7 +335,7 @@ protected String contentType() {
313
335
314
336
@ Override
315
337
public FieldMapper .Builder getMergeBuilder () {
316
- return new Builder (indexMode , IndexVersion . current () ).init (this );
338
+ return new Builder (indexMode , setDefaultSytheticMode ).init (this );
317
339
}
318
340
319
341
/**
0 commit comments