@@ -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
0 commit comments