Skip to content

Commit 91ca8d7

Browse files
committed
scaled_float field type
1 parent 40b4c1a commit 91ca8d7

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/extras/ScaledFloatFieldMapper.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,21 +134,24 @@ public static class Builder extends FieldMapper.Builder {
134134
private final IndexMode indexMode;
135135
private final IndexVersion indexCreatedVersion;
136136
private final SourceKeepMode indexSourceKeepMode;
137+
private final boolean indexDisabledByDefault;
137138

138139
public Builder(
139140
String name,
140141
Settings settings,
141142
IndexMode indexMode,
142143
IndexVersion indexCreatedVersion,
143-
SourceKeepMode indexSourceKeepMode
144+
SourceKeepMode indexSourceKeepMode,
145+
boolean indexDisabledByDefault
144146
) {
145147
this(
146148
name,
147149
IGNORE_MALFORMED_SETTING.get(settings),
148150
COERCE_SETTING.get(settings),
149151
indexMode,
150152
indexCreatedVersion,
151-
indexSourceKeepMode
153+
indexSourceKeepMode,
154+
indexDisabledByDefault
152155
);
153156
}
154157

@@ -158,7 +161,8 @@ public Builder(
158161
boolean coerceByDefault,
159162
IndexMode indexMode,
160163
IndexVersion indexCreatedVersion,
161-
SourceKeepMode indexSourceKeepMode
164+
SourceKeepMode indexSourceKeepMode,
165+
boolean indexDisabledByDefault
162166
) {
163167
super(name);
164168
this.ignoreMalformed = Parameter.explicitBoolParam(
@@ -170,6 +174,10 @@ public Builder(
170174
this.coerce = Parameter.explicitBoolParam("coerce", true, m -> toType(m).coerce, coerceByDefault);
171175
this.indexMode = indexMode;
172176
this.indexed = Parameter.indexParam(m -> toType(m).indexed, () -> {
177+
if (indexDisabledByDefault) {
178+
return false;
179+
}
180+
173181
if (indexMode == IndexMode.TIME_SERIES) {
174182
var metricType = getMetric().getValue();
175183
return metricType != TimeSeriesParams.MetricType.COUNTER && metricType != TimeSeriesParams.MetricType.GAUGE;
@@ -190,6 +198,7 @@ public Builder(
190198
});
191199
this.indexCreatedVersion = indexCreatedVersion;
192200
this.indexSourceKeepMode = indexSourceKeepMode;
201+
this.indexDisabledByDefault = indexDisabledByDefault;
193202
}
194203

195204
Builder scalingFactor(double scalingFactor) {
@@ -257,7 +266,8 @@ public ScaledFloatFieldMapper build(MapperBuilderContext context) {
257266
c.getSettings(),
258267
c.getIndexSettings().getMode(),
259268
c.indexVersionCreated(),
260-
c.getIndexSettings().sourceKeepMode()
269+
c.getIndexSettings().sourceKeepMode(),
270+
c.getIndexSettings().isIndexDisabledByDefault()
261271
)
262272
);
263273

@@ -592,6 +602,7 @@ public String toString() {
592602
private final IndexVersion indexCreatedVersion;
593603
private final String offsetsFieldName;
594604
private final SourceKeepMode indexSourceKeepMode;
605+
private final boolean indexDisabledByDefault;
595606

596607
private ScaledFloatFieldMapper(
597608
String simpleName,
@@ -617,6 +628,7 @@ private ScaledFloatFieldMapper(
617628
this.indexCreatedVersion = builder.indexCreatedVersion;
618629
this.offsetsFieldName = offsetsFieldName;
619630
this.indexSourceKeepMode = builder.indexSourceKeepMode;
631+
this.indexDisabledByDefault = builder.indexDisabledByDefault;
620632
}
621633

622634
boolean coerce() {
@@ -645,9 +657,15 @@ protected String contentType() {
645657

646658
@Override
647659
public FieldMapper.Builder getMergeBuilder() {
648-
return new Builder(leafName(), ignoreMalformedByDefault, coerceByDefault, indexMode, indexCreatedVersion, indexSourceKeepMode)
649-
.metric(metricType)
650-
.init(this);
660+
return new Builder(
661+
leafName(),
662+
ignoreMalformedByDefault,
663+
coerceByDefault,
664+
indexMode,
665+
indexCreatedVersion,
666+
indexSourceKeepMode,
667+
indexDisabledByDefault
668+
).metric(metricType).init(this);
651669
}
652670

653671
@Override

modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/ScaledFloatFieldTypeTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,16 @@ public void testFieldData() throws IOException {
222222
}
223223

224224
public void testFetchSourceValue() throws IOException {
225-
MappedFieldType mapper = new ScaledFloatFieldMapper.Builder("field", false, false, null, null, null).scalingFactor(100)
225+
MappedFieldType mapper = new ScaledFloatFieldMapper.Builder("field", false, false, null, null, null, false).scalingFactor(100)
226226
.build(MapperBuilderContext.root(false, false))
227227
.fieldType();
228228
assertEquals(List.of(3.14), fetchSourceValue(mapper, 3.1415926));
229229
assertEquals(List.of(3.14), fetchSourceValue(mapper, "3.1415"));
230230
assertEquals(List.of(), fetchSourceValue(mapper, ""));
231231

232-
MappedFieldType nullValueMapper = new ScaledFloatFieldMapper.Builder("field", false, false, null, null, null).scalingFactor(100)
233-
.nullValue(2.71)
234-
.build(MapperBuilderContext.root(false, false))
235-
.fieldType();
232+
MappedFieldType nullValueMapper = new ScaledFloatFieldMapper.Builder("field", false, false, null, null, null, false).scalingFactor(
233+
100
234+
).nullValue(2.71).build(MapperBuilderContext.root(false, false)).fieldType();
236235
assertEquals(List.of(2.71), fetchSourceValue(nullValueMapper, ""));
237236
}
238237
}

0 commit comments

Comments
 (0)