Add test for embeddingFieldName config in ES VectorStore

Adding test for commit in main 1f5dc3f739

Auto-cherry-pick to 1.0.x

Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
This commit is contained in:
Soby Chacko
2025-06-10 17:03:23 -04:00
parent 1f5dc3f739
commit 6451fef547
2 changed files with 13 additions and 3 deletions

View File

@@ -17,6 +17,7 @@
package org.springframework.ai.vectorstore.elasticsearch.autoconfigure;
import java.io.IOException;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
@@ -37,6 +38,7 @@ import org.springframework.ai.test.vectorstore.ObservationTestUtil;
import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore;
import org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStoreOptions;
import org.springframework.ai.vectorstore.elasticsearch.SimilarityFunction;
import org.springframework.ai.vectorstore.observation.VectorStoreObservationContext;
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -136,7 +138,8 @@ class ElasticsearchVectorStoreAutoConfigurationIT {
"spring.ai.vectorstore.elasticsearch.index-name=example",
"spring.ai.vectorstore.elasticsearch.dimensions=1024",
"spring.ai.vectorstore.elasticsearch.dense-vector-indexing=true",
"spring.ai.vectorstore.elasticsearch.similarity=cosine")
"spring.ai.vectorstore.elasticsearch.similarity=cosine",
"spring.ai.vectorstore.elasticsearch.embedding-field-name=custom_embedding_field")
.run(context -> {
var properties = context.getBean(ElasticsearchVectorStoreProperties.class);
var elasticsearchVectorStore = context.getBean(ElasticsearchVectorStore.class);
@@ -146,7 +149,16 @@ class ElasticsearchVectorStoreAutoConfigurationIT {
assertThat(properties.getDimensions()).isEqualTo(1024);
assertThat(properties.getSimilarity()).isEqualTo(SimilarityFunction.cosine);
assertThat(properties.getEmbeddingFieldName()).isEqualTo("custom_embedding_field");
assertThat(elasticsearchVectorStore).isNotNull();
Field optionsField = ElasticsearchVectorStore.class.getDeclaredField("options");
optionsField.setAccessible(true);
var options = (ElasticsearchVectorStoreOptions) optionsField.get(elasticsearchVectorStore);
assertThat(options).isNotNull();
assertThat(options.getEmbeddingFieldName()).isEqualTo("custom_embedding_field");
});
}

View File

@@ -147,8 +147,6 @@ import org.springframework.util.Assert;
*/
public class ElasticsearchVectorStore extends AbstractObservationVectorStore implements InitializingBean {
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchVectorStore.class);
private static final Map<SimilarityFunction, VectorStoreSimilarityMetric> SIMILARITY_TYPE_MAPPING = Map.of(
SimilarityFunction.cosine, VectorStoreSimilarityMetric.COSINE, SimilarityFunction.l2_norm,
VectorStoreSimilarityMetric.EUCLIDEAN, SimilarityFunction.dot_product, VectorStoreSimilarityMetric.DOT);