Skip to content

Commit 2b0b504

Browse files
committed
refactor(vectorstore): introduce builder pattern for MilvusVectorStore
- Replace configuration object with fluent builder pattern - Move Milvus-related classes to dedicated milvus package - Deprecate MilvusVectorStoreConfig in favor of builder - Update constructor to use builder internally - Maintain backward compatibility with deprecated config - Add comprehensive builder methods with validation
1 parent 6307377 commit 2b0b504

File tree

11 files changed

+418
-137
lines changed

11 files changed

+418
-137
lines changed

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import org.springframework.ai.embedding.BatchingStrategy;
2828
import org.springframework.ai.embedding.EmbeddingModel;
2929
import org.springframework.ai.embedding.TokenCountBatchingStrategy;
30-
import org.springframework.ai.vectorstore.MilvusVectorStore;
31-
import org.springframework.ai.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig;
30+
import org.springframework.ai.milvus.vectorstore.MilvusVectorStore;
31+
import org.springframework.ai.milvus.vectorstore.MilvusVectorStore.MilvusVectorStoreConfig;
3232
import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention;
3333
import org.springframework.beans.factory.ObjectProvider;
3434
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -71,23 +71,13 @@ public MilvusVectorStore vectorStore(MilvusServiceClient milvusClient, Embedding
7171
ObjectProvider<ObservationRegistry> observationRegistry,
7272
ObjectProvider<VectorStoreObservationConvention> customObservationConvention) {
7373

74-
MilvusVectorStoreConfig config = MilvusVectorStoreConfig.builder()
75-
.withCollectionName(properties.getCollectionName())
76-
.withDatabaseName(properties.getDatabaseName())
77-
.withIndexType(IndexType.valueOf(properties.getIndexType().name()))
78-
.withMetricType(MetricType.valueOf(properties.getMetricType().name()))
79-
.withIndexParameters(properties.getIndexParameters())
80-
.withEmbeddingDimension(properties.getEmbeddingDimension())
81-
.withIDFieldName(properties.getIdFieldName())
82-
.withAutoId(properties.isAutoId())
83-
.withContentFieldName(properties.getContentFieldName())
84-
.withMetadataFieldName(properties.getMetadataFieldName())
85-
.withEmbeddingFieldName(properties.getEmbeddingFieldName())
74+
return MilvusVectorStore.builder(milvusClient)
75+
.embeddingModel(embeddingModel)
76+
.initializeSchema(properties.isInitializeSchema())
77+
.batchingStrategy(batchingStrategy)
78+
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
79+
.customObservationConvention(customObservationConvention.getIfAvailable(() -> null))
8680
.build();
87-
88-
return new MilvusVectorStore(milvusClient, embeddingModel, config, properties.isInitializeSchema(),
89-
batchingStrategy, observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP),
90-
customObservationConvention.getIfAvailable(() -> null));
9181
}
9282

9383
@Bean

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package org.springframework.ai.autoconfigure.vectorstore.milvus;
1818

1919
import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties;
20-
import org.springframework.ai.vectorstore.MilvusVectorStore;
20+
import org.springframework.ai.milvus.vectorstore.MilvusVectorStore;
2121
import org.springframework.boot.context.properties.ConfigurationProperties;
2222
import org.springframework.util.Assert;
2323

vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/vectorstore/MilvusFilterExpressionConverter.java renamed to vector-stores/spring-ai-milvus-store/src/main/java/org/springframework/ai/milvus/vectorstore/MilvusFilterExpressionConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.vectorstore;
17+
package org.springframework.ai.milvus.vectorstore;
1818

1919
import org.springframework.ai.vectorstore.filter.Filter.Expression;
2020
import org.springframework.ai.vectorstore.filter.Filter.ExpressionType;

0 commit comments

Comments
 (0)