From 36cae9d6e0722368eb7c728bed209322ee15d557 Mon Sep 17 00:00:00 2001 From: Rishabh Maurya Date: Fri, 24 May 2024 13:25:15 -0700 Subject: [PATCH] Address PR comments Signed-off-by: Rishabh Maurya --- .../opensearch/index/mapper/DerivedField.java | 37 +++++++++++-------- .../search/builder/SearchSourceBuilder.java | 2 +- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/mapper/DerivedField.java b/server/src/main/java/org/opensearch/index/mapper/DerivedField.java index 4f7d67c3edbb6..b502e41cbb97b 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DerivedField.java +++ b/server/src/main/java/org/opensearch/index/mapper/DerivedField.java @@ -8,6 +8,7 @@ package org.opensearch.index.mapper; +import org.opensearch.Version; import org.opensearch.common.annotation.PublicApi; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; @@ -30,7 +31,7 @@ public class DerivedField implements Writeable, ToXContentFragment { private final String type; private final Script script; private String sourceIndexedField; - private Map properties; + private Map properties; private Boolean ignoreMalformed; private String format; @@ -44,12 +45,14 @@ public DerivedField(StreamInput in) throws IOException { name = in.readString(); type = in.readString(); script = new Script(in); - if (in.readBoolean()) { - properties = in.readMap(StreamInput::readString, StreamInput::readString); + if (in.getVersion().onOrAfter(Version.V_2_15_0)) { + if (in.readBoolean()) { + properties = in.readMap(); + } + sourceIndexedField = in.readOptionalString(); + format = in.readOptionalString(); + ignoreMalformed = in.readOptionalBoolean(); } - sourceIndexedField = in.readOptionalString(); - format = in.readOptionalString(); - ignoreMalformed = in.readOptionalBoolean(); } @Override @@ -57,15 +60,17 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(name); out.writeString(type); script.writeTo(out); - if (properties == null) { - out.writeBoolean(false); - } else { - out.writeBoolean(true); - out.writeMap(properties, StreamOutput::writeString, StreamOutput::writeString); + if (out.getVersion().onOrAfter(Version.V_2_15_0)) { + if (properties == null) { + out.writeBoolean(false); + } else { + out.writeBoolean(true); + out.writeMap(properties); + } + out.writeOptionalString(sourceIndexedField); + out.writeOptionalString(format); + out.writeOptionalBoolean(ignoreMalformed); } - out.writeOptionalString(sourceIndexedField); - out.writeOptionalString(format); - out.writeOptionalBoolean(ignoreMalformed); } @Override @@ -101,7 +106,7 @@ public Script getScript() { return script; } - public Map getProperties() { + public Map getProperties() { return properties; } @@ -117,7 +122,7 @@ public boolean getIgnoreMalformed() { return Boolean.TRUE.equals(ignoreMalformed); } - public void setProperties(Map properties) { + public void setProperties(Map properties) { this.properties = properties; } diff --git a/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java b/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java index da92acdffd976..6c22567d8cf0d 100644 --- a/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java +++ b/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java @@ -1018,7 +1018,7 @@ public SearchSourceBuilder derivedField( String name, String type, Script script, - Map properties, + Map properties, String sourceIndexedField, String format, Boolean ignoreMalformed