diff --git a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/annotation/MilvusCollection.java b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/annotation/MilvusCollection.java index f5d1d01..4dded39 100644 --- a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/annotation/MilvusCollection.java +++ b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/annotation/MilvusCollection.java @@ -20,9 +20,19 @@ public @interface MilvusCollection { String name(); /** - * + * 别名 */ String[] alias() default {}; + /** + * 一致性级别 + */ + ConsistencyLevel level() default ConsistencyLevel.BOUNDED; + + /** + * 禁用动态字段 + */ + boolean enableDynamicField() default false; + } \ No newline at end of file diff --git a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/builder/CollectionSchemaBuilder.java b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/builder/CollectionSchemaBuilder.java index 348aea0..2c23551 100644 --- a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/builder/CollectionSchemaBuilder.java +++ b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/builder/CollectionSchemaBuilder.java @@ -16,7 +16,14 @@ public class CollectionSchemaBuilder { private final MilvusClientV2 wrapper; private final CreateCollectionReq.CollectionSchema schema; private ConsistencyLevel consistencyLevel=ConsistencyLevel.BOUNDED; + private Boolean enableDynamicField=false; + public CollectionSchemaBuilder(Boolean enableDynamicField,String collectionName, MilvusClientV2 wrapper) { + this.collectionName = collectionName; + this.wrapper = wrapper; + this.schema = wrapper.createSchema(); + this.enableDynamicField=enableDynamicField; + } public CollectionSchemaBuilder(String collectionName, MilvusClientV2 wrapper) { this.collectionName = collectionName; this.wrapper = wrapper; @@ -44,7 +51,8 @@ public class CollectionSchemaBuilder { CreateCollectionReq req=CreateCollectionReq.builder(). collectionName(this.collectionName). collectionSchema(this.schema). - consistencyLevel(this.consistencyLevel) + consistencyLevel(this.consistencyLevel). + enableDynamicField(this.enableDynamicField) .build(); wrapper.createCollection(req); } diff --git a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/MilvusConverter.java b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/MilvusConverter.java index 5566efb..7d6c027 100644 --- a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/MilvusConverter.java +++ b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/converter/MilvusConverter.java @@ -69,6 +69,8 @@ public class MilvusConverter { // 集合名称 String collectionName = collectionAnnotation.name(); milvus.setCollectionName(collectionName); + boolean enableDynamicField = collectionAnnotation.enableDynamicField(); + milvus.setEnableDynamicField(enableDynamicField); //一致性级别 ConsistencyLevel level = collectionAnnotation.level(); milvus.setConsistencyLevel(level); @@ -220,7 +222,7 @@ public class MilvusConverter { } // 创建新集合 CollectionSchemaBuilder schemaBuilder = new CollectionSchemaBuilder( - milvusEntity.getCollectionName(), client + milvusEntity.getEnableDynamicField(),milvusEntity.getCollectionName(), client ); schemaBuilder.addField(milvusEntity.getMilvusFields().toArray(new AddFieldReq[0])); schemaBuilder.addConsistencyLevel(milvusEntity.getConsistencyLevel()); diff --git a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/model/MilvusEntity.java b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/model/MilvusEntity.java index 0011fd4..2ee7ad1 100644 --- a/milvus-plus-core/src/main/java/org/dromara/milvus/plus/model/MilvusEntity.java +++ b/milvus-plus-core/src/main/java/org/dromara/milvus/plus/model/MilvusEntity.java @@ -18,4 +18,5 @@ public class MilvusEntity { private List milvusFields; private List partitionName; private ConsistencyLevel consistencyLevel; + private Boolean enableDynamicField; }