Skip to content

Commit d2b0e57

Browse files
fix(businessAttribute): fix business Attribute related entities (#12537)
1 parent 6f0d475 commit d2b0e57

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

metadata-io/src/main/java/com/linkedin/metadata/search/utils/ESUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,8 @@ public static String toKeywordField(
503503

504504
return skipKeywordSuffix
505505
|| KEYWORD_FIELDS.contains(fieldName)
506+
|| KEYWORD_FIELDS.stream()
507+
.anyMatch(nestedField -> fieldName.endsWith("." + nestedField))
506508
|| PATH_HIERARCHY_FIELDS.contains(fieldName)
507509
|| SUBFIELDS.stream().anyMatch(subfield -> fieldName.endsWith("." + subfield))
508510
? fieldName

metadata-io/src/test/java/com/linkedin/metadata/search/utils/ESUtilsTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,46 @@ public void testGetQueryBuilderFromCriterionFieldToExpand() {
800800
+ " }\n"
801801
+ "}";
802802
Assert.assertEquals(envExpanded.toString(), envExpected);
803+
804+
final Criterion businessAttributeRefNestedFieldCriterion =
805+
buildCriterion("businessAttribute", Condition.EQUAL, "urn:li:businessAttribute:value");
806+
807+
QueryBuilder businessAttributeExpanded =
808+
ESUtils.getQueryBuilderFromCriterion(
809+
businessAttributeRefNestedFieldCriterion,
810+
false,
811+
new HashMap<>(),
812+
mock(OperationContext.class),
813+
QueryFilterRewriteChain.EMPTY);
814+
String businessAttributeExpected =
815+
"{\n"
816+
+ " \"bool\" : {\n"
817+
+ " \"should\" : [\n"
818+
+ " {\n"
819+
+ " \"terms\" : {\n"
820+
+ " \"businessAttributeRef.keyword\" : [\n"
821+
+ " \"urn:li:businessAttribute:value\"\n"
822+
+ " ],\n"
823+
+ " \"boost\" : 1.0,\n"
824+
+ " \"_name\" : \"businessAttributeRef\"\n"
825+
+ " }\n"
826+
+ " },\n"
827+
+ " {\n"
828+
+ " \"terms\" : {\n"
829+
+ " \"businessAttributeRef.urn\" : [\n"
830+
+ " \"urn:li:businessAttribute:value\"\n"
831+
+ " ],\n"
832+
+ " \"boost\" : 1.0,\n"
833+
+ " \"_name\" : \"businessAttributeRef.urn\"\n"
834+
+ " }\n"
835+
+ " }\n"
836+
+ " ],\n"
837+
+ " \"adjust_pure_negative\" : true,\n"
838+
+ " \"minimum_should_match\" : \"1\",\n"
839+
+ " \"boost\" : 1.0\n"
840+
+ " }\n"
841+
+ "}";
842+
Assert.assertEquals(businessAttributeExpanded.toString(), businessAttributeExpected);
803843
}
804844

805845
@Test

0 commit comments

Comments
 (0)