Skip to content

Commit 8a3ecc8

Browse files
committed
Address review comments
1 parent 25749f4 commit 8a3ecc8

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

server/src/main/java/org/elasticsearch/index/IndexMode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ private static String routingRequiredBad() {
189189

190190
@Override
191191
public MetadataFieldMapper timeSeriesIdFieldMapper(MappingParserContext c) {
192-
return new TimeSeriesIdFieldMapper.Builder(c).build();
192+
return TimeSeriesIdFieldMapper.getInstance(c);
193193
}
194194

195195
@Override

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

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,34 @@ public class TimeSeriesIdFieldMapper extends MetadataFieldMapper {
4747
public static final String CONTENT_TYPE = "_tsid";
4848
public static final TimeSeriesIdFieldType FIELD_TYPE = new TimeSeriesIdFieldType();
4949

50+
private static final TimeSeriesIdFieldMapper INSTANCE_WITHOUT_SKIPPER = new TimeSeriesIdFieldMapper(false);
51+
private static final TimeSeriesIdFieldMapper INSTANCE_WITH_SKIPPER = new TimeSeriesIdFieldMapper(true);
52+
53+
public static TimeSeriesIdFieldMapper getInstance(boolean useDocValuesSkipper) {
54+
if (useDocValuesSkipper) {
55+
return INSTANCE_WITH_SKIPPER;
56+
} else {
57+
return INSTANCE_WITHOUT_SKIPPER;
58+
}
59+
}
60+
61+
public static TimeSeriesIdFieldMapper getInstance(MappingParserContext context) {
62+
boolean useDocValuesSkipper = context.indexVersionCreated().onOrAfter(IndexVersions.TIME_SERIES_ID_DOC_VALUES_SPARSE_INDEX)
63+
&& context.getIndexSettings().useDocValuesSkipper();
64+
return TimeSeriesIdFieldMapper.getInstance(useDocValuesSkipper);
65+
}
66+
5067
@Override
5168
public FieldMapper.Builder getMergeBuilder() {
52-
return new Builder(this.indexCreatedVersion, this.useDocValuesSkipper).init(this);
69+
return new Builder(this.useDocValuesSkipper).init(this);
5370
}
5471

5572
public static class Builder extends MetadataFieldMapper.Builder {
5673

57-
private final IndexVersion indexCreatedVersion;
5874
private final boolean useDocValuesSkipper;
5975

60-
public Builder(MappingParserContext context) {
61-
this(context.indexVersionCreated(), context.getIndexSettings().useDocValuesSkipper());
62-
}
63-
64-
protected Builder(IndexVersion indexCreatedVersion, boolean useDocValuesSkipper) {
76+
protected Builder(boolean useDocValuesSkipper) {
6577
super(NAME);
66-
this.indexCreatedVersion = indexCreatedVersion;
6778
this.useDocValuesSkipper = useDocValuesSkipper;
6879
}
6980

@@ -74,7 +85,7 @@ protected Parameter<?>[] getParameters() {
7485

7586
@Override
7687
public TimeSeriesIdFieldMapper build() {
77-
return new TimeSeriesIdFieldMapper(indexCreatedVersion, useDocValuesSkipper);
88+
return TimeSeriesIdFieldMapper.getInstance(useDocValuesSkipper);
7889
}
7990
}
8091

@@ -123,12 +134,10 @@ public Query termQuery(Object value, SearchExecutionContext context) {
123134
}
124135
}
125136

126-
private final IndexVersion indexCreatedVersion;
127137
private final boolean useDocValuesSkipper;
128138

129-
private TimeSeriesIdFieldMapper(IndexVersion indexCreatedVersion, boolean useDocValuesSkipper) {
139+
private TimeSeriesIdFieldMapper(boolean useDocValuesSkipper) {
130140
super(FIELD_TYPE);
131-
this.indexCreatedVersion = indexCreatedVersion;
132141
this.useDocValuesSkipper = useDocValuesSkipper;
133142
}
134143

@@ -149,7 +158,7 @@ public void postParse(DocumentParserContext context) throws IOException {
149158
timeSeriesId = routingPathFields.buildHash().toBytesRef();
150159
}
151160

152-
if (this.useDocValuesSkipper && this.indexCreatedVersion.onOrAfter(IndexVersions.TIME_SERIES_ID_DOC_VALUES_SPARSE_INDEX)) {
161+
if (this.useDocValuesSkipper) {
153162
context.doc().add(SortedDocValuesField.indexedField(fieldType().name(), timeSeriesId));
154163
} else {
155164
context.doc().add(new SortedDocValuesField(fieldType().name(), timeSeriesId));

0 commit comments

Comments
 (0)