diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch/src/test/java/org/springframework/ai/vectorstore/elasticsearch/autoconfigure/ElasticsearchVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch/src/test/java/org/springframework/ai/vectorstore/elasticsearch/autoconfigure/ElasticsearchVectorStoreAutoConfigurationIT.java index e86548e4b..48e5191a1 100644 --- a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch/src/test/java/org/springframework/ai/vectorstore/elasticsearch/autoconfigure/ElasticsearchVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch/src/test/java/org/springframework/ai/vectorstore/elasticsearch/autoconfigure/ElasticsearchVectorStoreAutoConfigurationIT.java @@ -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"); }); } diff --git a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java index f09194632..4a0ceff3d 100644 --- a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java +++ b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java @@ -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 SIMILARITY_TYPE_MAPPING = Map.of( SimilarityFunction.cosine, VectorStoreSimilarityMetric.COSINE, SimilarityFunction.l2_norm, VectorStoreSimilarityMetric.EUCLIDEAN, SimilarityFunction.dot_product, VectorStoreSimilarityMetric.DOT);