Skip to content

Commit 6cd6ec9

Browse files
pmbrullclaude
andcommitted
Consolidate vector embedding tests into SearchIndexAppTest
Merge 3 separate full-app vector embedding test classes (SearchIndexVectorEmbeddingTest, VectorEmbeddingReindexAppTest, VectorEmbeddingReembedOperationsTest) into SearchIndexAppTest to avoid starting infrastructure 3 times. Keep VectorEmbeddingIntegrationIT in openmetadata-integration-tests since it's self-contained with its own testcontainers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 78ea068 commit 6cd6ec9

File tree

7 files changed

+806
-1566
lines changed

7 files changed

+806
-1566
lines changed

openmetadata-service/src/test/java/org/openmetadata/service/search/vector/VectorEmbeddingIntegrationTest.java renamed to openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/VectorEmbeddingIntegrationIT.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.openmetadata.service.search.vector;
1+
package org.openmetadata.it.tests;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -24,6 +24,8 @@
2424
import org.junit.jupiter.api.Test;
2525
import org.junit.jupiter.api.TestInstance;
2626
import org.openmetadata.schema.entity.data.Table;
27+
import org.openmetadata.service.search.vector.OpenSearchVectorService;
28+
import org.openmetadata.service.search.vector.VectorDocBuilder;
2729
import org.openmetadata.service.search.vector.client.DjlEmbeddingClient;
2830
import org.openmetadata.service.search.vector.client.DjlEmbeddingClient.EmbeddingInitializationException;
2931
import org.opensearch.testcontainers.OpensearchContainer;
@@ -37,7 +39,7 @@
3739

3840
@Testcontainers
3941
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
40-
class VectorEmbeddingIntegrationTest {
42+
class VectorEmbeddingIntegrationIT {
4143

4244
@Container
4345
static OpensearchContainer<?> opensearch =

openmetadata-service/src/main/java/org/openmetadata/service/search/vector/VectorSearchQueryBuilder.java

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
import java.util.List;
77
import java.util.Map;
88
import lombok.experimental.UtilityClass;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
911

1012
@UtilityClass
1113
public class VectorSearchQueryBuilder {
14+
private static final Logger LOG = LoggerFactory.getLogger(VectorSearchQueryBuilder.class);
1215
private static final String ANY = "__ANY__";
1316
private static final String NONE = "__NONE__";
1417

@@ -37,23 +40,41 @@ public static String build(float[] vector, int size, int k, Map<String, List<Str
3740
List<String> values = e.getValue();
3841
if (values == null || values.isEmpty()) continue;
3942

40-
sb.append(','); // Add comma before each filter
41-
4243
// Handle custom properties that will come with "customProperties.<name>"
4344
if (field.startsWith("customProperties.")) {
45+
sb.append(',');
4446
appendCustomPropertiesFilter(sb, field, values);
4547
} else {
46-
4748
switch (field) {
48-
case "owners" -> appendOwnersFilter(sb, values);
49-
case "tags" -> appendNested(sb, "tags", "tags.tagFQN", values);
50-
case "domains" -> appendFlat(sb, "domains.name", values);
51-
case "tier" -> appendFlat(sb, "tier.tagFQN", values);
52-
case "certification" -> appendFlat(sb, "certification.tagFQN", values);
53-
case "entityType" -> appendFlat(sb, "entityType", values);
54-
case "serviceType" -> appendFlat(sb, "serviceType", values);
55-
56-
default -> {}
49+
case "owners" -> {
50+
sb.append(',');
51+
appendOwnersFilter(sb, values);
52+
}
53+
case "tags" -> {
54+
sb.append(',');
55+
appendNested(sb, "tags", "tags.tagFQN", values);
56+
}
57+
case "domains" -> {
58+
sb.append(',');
59+
appendFlat(sb, "domains.name", values);
60+
}
61+
case "tier" -> {
62+
sb.append(',');
63+
appendFlat(sb, "tier.tagFQN", values);
64+
}
65+
case "certification" -> {
66+
sb.append(',');
67+
appendFlat(sb, "certification.tagFQN", values);
68+
}
69+
case "entityType" -> {
70+
sb.append(',');
71+
appendFlat(sb, "entityType", values);
72+
}
73+
case "serviceType" -> {
74+
sb.append(',');
75+
appendFlat(sb, "serviceType", values);
76+
}
77+
default -> LOG.debug("Ignoring unrecognized filter key: {}", field);
5778
}
5879
}
5980
}

0 commit comments

Comments
 (0)