Skip to content

Commit 39aa086

Browse files
milindgupta9milindgupta
and
milindgupta
authored
Fix: bug fix for empty key values pair in elastic search mapping (#11004)
Co-authored-by: milindgupta <[email protected]>
1 parent 408fdcd commit 39aa086

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

metadata-io/src/main/java/com/linkedin/metadata/search/transformer/SearchDocumentTransformer.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,10 @@ public void setSearchableValue(
287287
.forEach(
288288
fieldValue -> {
289289
String[] keyValues = fieldValue.toString().split("=");
290-
String key = keyValues[0];
291-
String value = keyValues[1];
290+
String key = keyValues[0], value = "";
291+
if (keyValues.length > 1) {
292+
value = keyValues[1];
293+
}
292294
dictDoc.put(key, value);
293295
});
294296
searchDocument.set(fieldName, dictDoc);

metadata-io/src/test/java/com/linkedin/metadata/TestEntityUtil.java

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ public static TestEntityInfo getTestEntityInfo(Urn urn) {
6565
"value1",
6666
"key2",
6767
"value2",
68+
"key3",
69+
"",
6870
"shortValue",
6971
"123",
7072
"longValue",

metadata-io/src/test/java/com/linkedin/metadata/extractor/FieldExtractorTest.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ public void testExtractor() {
5757
ImmutableList.of("key1=value1", "key2=value2", "shortValue=123", "longValue=0123456789"));
5858
assertEquals(
5959
result.get(nameToSpec.get("esObjectField")),
60-
ImmutableList.of("key1=value1", "key2=value2", "shortValue=123", "longValue=0123456789"));
60+
ImmutableList.of(
61+
"key1=value1", "key2=value2", "shortValue=123", "key3=", "longValue=0123456789"));
6162
}
6263

6364
@Test
@@ -99,9 +100,6 @@ public void testExtractorMaxValueLength() {
99100
result.get(nameToSpec.get("customProperties")),
100101
ImmutableList.of(),
101102
"Expected no matching values because of value limit of 1");
102-
assertEquals(
103-
result.get(nameToSpec.get("esObjectField")),
104-
ImmutableList.of(),
105-
"Expected no matching values because of value limit of 1");
103+
assertEquals(result.get(nameToSpec.get("esObjectField")), ImmutableList.of("key3="));
106104
}
107105
}

metadata-io/src/test/java/com/linkedin/metadata/search/transformer/SearchDocumentTransformerTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public void testTransform() throws IOException {
8585
assertEquals(parsedJson.get("feature2").asInt(), 1);
8686
JsonNode browsePathV2 = (JsonNode) parsedJson.get("browsePathV2");
8787
assertEquals(browsePathV2.asText(), "␟levelOne␟levelTwo");
88+
assertEquals(parsedJson.get("esObjectField").get("key3").asText(), "");
8889
}
8990

9091
@Test
@@ -125,7 +126,8 @@ public void testTransformMaxFieldValue() throws IOException {
125126
assertEquals(
126127
parsedJson.get("customProperties"),
127128
JsonNodeFactory.instance.arrayNode().add("shortValue=123"));
128-
assertEquals(parsedJson.get("esObjectField"), JsonNodeFactory.instance.arrayNode().add("123"));
129+
assertEquals(
130+
parsedJson.get("esObjectField"), JsonNodeFactory.instance.arrayNode().add("123").add(""));
129131

130132
searchDocumentTransformer = new SearchDocumentTransformer(1000, 1000, 20);
131133
snapshot = TestEntityUtil.getSnapshot();
@@ -149,6 +151,7 @@ public void testTransformMaxFieldValue() throws IOException {
149151
.add("value1")
150152
.add("value2")
151153
.add("123")
154+
.add("")
152155
.add("0123456789"));
153156
}
154157

0 commit comments

Comments
 (0)