Skip to content

Commit ce736dd

Browse files
committed
Revert "enhancement: boolean field to support ignore_malformed (#90122)"
This was merged in error without a full CI run, and has some issues. This reverts commit edcdc43. This reverts commit 26c0a35.
1 parent fa52364 commit ce736dd

File tree

7 files changed

+11
-44
lines changed

7 files changed

+11
-44
lines changed

docs/reference/mapping/params/ignore-malformed.asciidoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ PUT my-index-000001/_doc/2
4949
The `ignore_malformed` setting is currently supported by the following <<mapping-types,mapping types>>:
5050

5151
<<number>>:: `long`, `integer`, `short`, `byte`, `double`, `float`, `half_float`, `scaled_float`
52-
<<boolean>>:: `true`, `false`
5352
<<date>>:: `date`
5453
<<date_nanos>>:: `date_nanos`
5554
<<geo-point>>:: `geo_point` for lat/lon points

docs/reference/mapping/types/boolean.asciidoc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,6 @@ The following parameters are accepted by `boolean` fields:
179179
enabled can still be queried using term or range-based queries,
180180
albeit slower.
181181

182-
<<ignore-malformed, `ignore_malformed`>>::
183-
184-
Trying to index the wrong data type into a field throws an exception by default, and rejects the whole document. If this parameter is set to true, it allows the exception to be ignored. The malformed field is not indexed, but other fields in the document are processed normally. Accepts `true` or `false`.
185-
186182
<<null-value,`null_value`>>::
187183

188184
Accepts any of the true or false values listed above. The value is

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

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.lucene.search.TermRangeQuery;
2323
import org.apache.lucene.util.BytesRef;
2424
import org.elasticsearch.Version;
25-
import org.elasticsearch.common.Explicit;
2625
import org.elasticsearch.common.lucene.Lucene;
2726
import org.elasticsearch.common.xcontent.support.XContentMapValues;
2827
import org.elasticsearch.core.Booleans;
@@ -85,7 +84,7 @@ public static class Builder extends FieldMapper.Builder {
8584
private final Parameter<Boolean> docValues = Parameter.docValuesParam(m -> toType(m).hasDocValues, true);
8685
private final Parameter<Boolean> indexed = Parameter.indexParam(m -> toType(m).indexed, true);
8786
private final Parameter<Boolean> stored = Parameter.storeParam(m -> toType(m).stored, false);
88-
private final Parameter<Explicit<Boolean>> ignoreMalformed;
87+
8988
private final Parameter<Boolean> nullValue = new Parameter<>(
9089
"null_value",
9190
false,
@@ -105,23 +104,17 @@ public static class Builder extends FieldMapper.Builder {
105104

106105
private final Version indexCreatedVersion;
107106

108-
public Builder(String name, ScriptCompiler scriptCompiler, boolean ignoreMalformedByDefault, Version indexCreatedVersion) {
107+
public Builder(String name, ScriptCompiler scriptCompiler, Version indexCreatedVersion) {
109108
super(name);
110109
this.scriptCompiler = Objects.requireNonNull(scriptCompiler);
111110
this.indexCreatedVersion = Objects.requireNonNull(indexCreatedVersion);
112-
this.ignoreMalformed = Parameter.explicitBoolParam(
113-
"ignore_malformed",
114-
true,
115-
m -> toType(m).ignoreMalformed,
116-
ignoreMalformedByDefault
117-
);
118-
this.script.precludesParameters(ignoreMalformed, nullValue);
111+
this.script.precludesParameters(nullValue);
119112
addScriptValidation(script, indexed, docValues);
120113
}
121114

122115
@Override
123116
protected Parameter<?>[] getParameters() {
124-
return new Parameter<?>[] { meta, docValues, indexed, nullValue, stored, script, onScriptError, ignoreMalformed };
117+
return new Parameter<?>[] { meta, docValues, indexed, nullValue, stored, script, onScriptError };
125118
}
126119

127120
@Override
@@ -155,7 +148,7 @@ private FieldValues<Boolean> scriptValues() {
155148
private static final Version MINIMUM_COMPATIBILITY_VERSION = Version.fromString("5.0.0");
156149

157150
public static final TypeParser PARSER = new TypeParser(
158-
(n, c) -> new Builder(n, c.scriptCompiler(), IGNORE_MALFORMED_SETTING.get(c.getSettings()), c.indexVersionCreated()),
151+
(n, c) -> new Builder(n, c.scriptCompiler(), c.indexVersionCreated()),
159152
MINIMUM_COMPATIBILITY_VERSION
160153
);
161154

@@ -374,8 +367,6 @@ public Query rangeQuery(
374367
private final FieldValues<Boolean> scriptValues;
375368
private final ScriptCompiler scriptCompiler;
376369
private final Version indexCreatedVersion;
377-
private final Explicit<Boolean> ignoreMalformed;
378-
private final boolean ignoreMalformedByDefault;
379370

380371
protected BooleanFieldMapper(
381372
String simpleName,
@@ -393,8 +384,6 @@ protected BooleanFieldMapper(
393384
this.scriptValues = builder.scriptValues();
394385
this.scriptCompiler = builder.scriptCompiler;
395386
this.indexCreatedVersion = builder.indexCreatedVersion;
396-
this.ignoreMalformed = builder.ignoreMalformed.getValue();
397-
this.ignoreMalformedByDefault = builder.ignoreMalformed.getDefaultValue().value();
398387
}
399388

400389
@Override
@@ -420,15 +409,7 @@ protected void parseCreateField(DocumentParserContext context) throws IOExceptio
420409
value = nullValue;
421410
}
422411
} else {
423-
try {
424-
value = context.parser().booleanValue();
425-
} catch (IllegalArgumentException e) {
426-
if (ignoreMalformed.value() && context.parser().currentToken().isValue()) {
427-
context.addIgnoredField(mappedFieldType.name());
428-
} else {
429-
throw e;
430-
}
431-
}
412+
value = context.parser().booleanValue();
432413
}
433414
indexValue(context, value);
434415
}
@@ -462,7 +443,7 @@ protected void indexScriptValues(
462443

463444
@Override
464445
public FieldMapper.Builder getMergeBuilder() {
465-
return new Builder(simpleName(), scriptCompiler, ignoreMalformedByDefault, indexCreatedVersion).init(this);
446+
return new Builder(simpleName(), scriptCompiler, indexCreatedVersion).init(this);
466447
}
467448

468449
@Override

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -355,15 +355,8 @@ public void newDynamicDoubleField(DocumentParserContext context, String name) th
355355

356356
@Override
357357
public void newDynamicBooleanField(DocumentParserContext context, String name) throws IOException {
358-
Settings settings = context.indexSettings().getSettings();
359-
boolean ignoreMalformed = FieldMapper.IGNORE_MALFORMED_SETTING.get(settings);
360358
createDynamicField(
361-
new BooleanFieldMapper.Builder(
362-
name,
363-
ScriptCompiler.NONE,
364-
ignoreMalformed,
365-
context.indexSettings().getIndexVersionCreated()
366-
),
359+
new BooleanFieldMapper.Builder(name, ScriptCompiler.NONE, context.indexSettings().getIndexVersionCreated()),
367360
context
368361
);
369362
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ protected Query randomTermsQuery(MappedFieldType ft, SearchExecutionContext ctx)
319319
}
320320

321321
public void testDualingQueries() throws IOException {
322-
BooleanFieldMapper ootb = new BooleanFieldMapper.Builder("foo", ScriptCompiler.NONE,false, Version.CURRENT).build(
322+
BooleanFieldMapper ootb = new BooleanFieldMapper.Builder("foo", ScriptCompiler.NONE, Version.CURRENT).build(
323323
MapperBuilderContext.root(false)
324324
);
325325
try (Directory directory = newDirectory(); RandomIndexWriter iw = new RandomIndexWriter(random(), directory)) {

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,7 @@ public void testFieldAliasWithDifferentNestedScopes() {
158158
}
159159

160160
private static FieldMapper createFieldMapper(String parent, String name) {
161-
return new BooleanFieldMapper.Builder(name, ScriptCompiler.NONE, false, Version.CURRENT).build(
162-
new MapperBuilderContext(parent, false)
163-
);
161+
return new BooleanFieldMapper.Builder(name, ScriptCompiler.NONE, Version.CURRENT).build(new MapperBuilderContext(parent, false));
164162
}
165163

166164
private static ObjectMapper createObjectMapper(String name) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void testSorting() {
4040
builder.add(new BooleanFieldMapper.Builder(name, ScriptCompiler.NONE, Version.CURRENT));
4141
}
4242

43-
Mapper.Builder root = new BooleanFieldMapper.Builder("root", ScriptCompiler.NONE, false, Version.CURRENT);
43+
Mapper.Builder root = new BooleanFieldMapper.Builder("root", ScriptCompiler.NONE, Version.CURRENT);
4444
FieldMapper.MultiFields multiFields = builder.build(root, MapperBuilderContext.root(false));
4545

4646
String serialized = Strings.toString(multiFields);

0 commit comments

Comments
 (0)