Skip to content

Commit 44e8156

Browse files
committed
Don't print synthetic source in mapping for bwc tests #2
1 parent 89641ee commit 44e8156

File tree

3 files changed

+33
-12
lines changed

3 files changed

+33
-12
lines changed

server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,17 @@ public static class Builder extends MetadataFieldMapper.Builder {
114114
);
115115

116116
private final IndexMode indexMode;
117+
private final boolean setDefaultSytheticMode;
117118

118-
public Builder(IndexMode indexMode, IndexVersion indexVersion) {
119+
public Builder(IndexMode indexMode, boolean setDefaultSytheticMode) {
119120
super(Defaults.NAME);
120121
this.indexMode = indexMode;
122+
this.setDefaultSytheticMode = setDefaultSytheticMode;
121123
this.mode = new Parameter<>(
122124
"mode",
123125
true,
124126
// 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,
128128
(n, c, o) -> Mode.valueOf(o.toString().toUpperCase(Locale.ROOT)),
129129
m -> toType(m).enabled.explicit() ? null : toType(m).mode,
130130
(b, n, v) -> b.field(n, v.toString().toLowerCase(Locale.ROOT)),
@@ -171,7 +171,8 @@ public SourceFieldMapper build() {
171171
enabled.get(),
172172
includes.getValue().toArray(String[]::new),
173173
excludes.getValue().toArray(String[]::new),
174-
indexMode
174+
indexMode,
175+
setDefaultSytheticMode
175176
);
176177
if (indexMode != null) {
177178
indexMode.validateSourceFieldMapper(sourceFieldMapper);
@@ -188,7 +189,10 @@ private IndexMode getIndexMode() {
188189
c -> c.getIndexSettings().getMode() == IndexMode.TIME_SERIES
189190
? c.getIndexSettings().getIndexVersionCreated().onOrAfter(IndexVersion.V_8_7_0) ? TSDB_DEFAULT : TSDB_LEGACY_DEFAULT
190191
: 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+
)
192196
);
193197

194198
static final class SourceFieldType extends MappedFieldType {
@@ -230,8 +234,25 @@ public Query termQuery(Object value, SearchExecutionContext context) {
230234
private final SourceFilter sourceFilter;
231235

232236
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+
}
233247

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+
) {
235256
super(new SourceFieldType((enabled.explicit() && enabled.value()) || (enabled.explicit() == false && mode != Mode.DISABLED)));
236257
assert enabled.explicit() == false || mode == null;
237258
this.mode = mode;
@@ -244,6 +265,7 @@ private SourceFieldMapper(Mode mode, Explicit<Boolean> enabled, String[] include
244265
}
245266
this.complete = stored() && sourceFilter == null;
246267
this.indexMode = indexMode;
268+
this.setDefaultSytheticMode = setDefaultSytheticMode;
247269
}
248270

249271
private static SourceFilter buildSourceFilter(String[] includes, String[] excludes) {
@@ -313,7 +335,7 @@ protected String contentType() {
313335

314336
@Override
315337
public FieldMapper.Builder getMergeBuilder() {
316-
return new Builder(indexMode, IndexVersion.current()).init(this);
338+
return new Builder(indexMode, setDefaultSytheticMode).init(this);
317339
}
318340

319341
/**

server/src/test/java/org/elasticsearch/index/mapper/SourceFieldMapperTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.elasticsearch.common.bytes.BytesReference;
1414
import org.elasticsearch.common.xcontent.XContentHelper;
1515
import org.elasticsearch.index.IndexMode;
16-
import org.elasticsearch.index.IndexVersion;
1716
import org.elasticsearch.xcontent.XContentBuilder;
1817
import org.elasticsearch.xcontent.XContentFactory;
1918
import org.elasticsearch.xcontent.XContentParser;
@@ -242,8 +241,8 @@ public void testSyntheticSourceInTimeSeries() throws IOException {
242241
}
243242

244243
public void testSyntheticSourceInTimeSeriesBwc() throws IOException {
245-
SourceFieldMapper sourceMapper = new SourceFieldMapper.Builder(IndexMode.TIME_SERIES, IndexVersion.V_8_8_0).build();
244+
SourceFieldMapper sourceMapper = new SourceFieldMapper.Builder(IndexMode.TIME_SERIES, true).build();
246245
assertTrue(sourceMapper.isSynthetic());
247-
assertEquals("{\"_source\":{\"mode\":\"synthetic\"}}", sourceMapper.toString());
246+
assertEquals("{}", sourceMapper.toString());
248247
}
249248
}

server/src/test/java/org/elasticsearch/index/query/SearchExecutionContextTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ public void testSearchRequestRuntimeFieldsAndMultifieldDetection() {
381381

382382
public void testSyntheticSourceSearchLookup() throws IOException {
383383
// Build a mapping using synthetic source
384-
SourceFieldMapper sourceMapper = new SourceFieldMapper.Builder(null, IndexVersion.current()).setSynthetic().build();
384+
SourceFieldMapper sourceMapper = new SourceFieldMapper.Builder(null, false).setSynthetic().build();
385385
RootObjectMapper root = new RootObjectMapper.Builder("_doc", Explicit.IMPLICIT_TRUE).add(
386386
new KeywordFieldMapper.Builder("cat", IndexVersion.current()).ignoreAbove(100)
387387
).build(MapperBuilderContext.root(true, false));

0 commit comments

Comments
 (0)