add<禁用动态字段>

This commit is contained in:
xgc 2024-08-30 16:32:15 +08:00
parent 7e59cd0c9a
commit 4a2c17bcf2
4 changed files with 24 additions and 3 deletions

View File

@ -20,9 +20,19 @@ public @interface MilvusCollection {
String name(); String name();
/** /**
* * 别名
*/ */
String[] alias() default {}; String[] alias() default {};
/**
* 一致性级别
*/
ConsistencyLevel level() default ConsistencyLevel.BOUNDED; ConsistencyLevel level() default ConsistencyLevel.BOUNDED;
/**
* 禁用动态字段
*/
boolean enableDynamicField() default false;
} }

View File

@ -16,7 +16,14 @@ public class CollectionSchemaBuilder {
private final MilvusClientV2 wrapper; private final MilvusClientV2 wrapper;
private final CreateCollectionReq.CollectionSchema schema; private final CreateCollectionReq.CollectionSchema schema;
private ConsistencyLevel consistencyLevel=ConsistencyLevel.BOUNDED; 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) { public CollectionSchemaBuilder(String collectionName, MilvusClientV2 wrapper) {
this.collectionName = collectionName; this.collectionName = collectionName;
this.wrapper = wrapper; this.wrapper = wrapper;
@ -44,7 +51,8 @@ public class CollectionSchemaBuilder {
CreateCollectionReq req=CreateCollectionReq.builder(). CreateCollectionReq req=CreateCollectionReq.builder().
collectionName(this.collectionName). collectionName(this.collectionName).
collectionSchema(this.schema). collectionSchema(this.schema).
consistencyLevel(this.consistencyLevel) consistencyLevel(this.consistencyLevel).
enableDynamicField(this.enableDynamicField)
.build(); .build();
wrapper.createCollection(req); wrapper.createCollection(req);
} }

View File

@ -69,6 +69,8 @@ public class MilvusConverter {
// 集合名称 // 集合名称
String collectionName = collectionAnnotation.name(); String collectionName = collectionAnnotation.name();
milvus.setCollectionName(collectionName); milvus.setCollectionName(collectionName);
boolean enableDynamicField = collectionAnnotation.enableDynamicField();
milvus.setEnableDynamicField(enableDynamicField);
//一致性级别 //一致性级别
ConsistencyLevel level = collectionAnnotation.level(); ConsistencyLevel level = collectionAnnotation.level();
milvus.setConsistencyLevel(level); milvus.setConsistencyLevel(level);
@ -220,7 +222,7 @@ public class MilvusConverter {
} }
// 创建新集合 // 创建新集合
CollectionSchemaBuilder schemaBuilder = new CollectionSchemaBuilder( CollectionSchemaBuilder schemaBuilder = new CollectionSchemaBuilder(
milvusEntity.getCollectionName(), client milvusEntity.getEnableDynamicField(),milvusEntity.getCollectionName(), client
); );
schemaBuilder.addField(milvusEntity.getMilvusFields().toArray(new AddFieldReq[0])); schemaBuilder.addField(milvusEntity.getMilvusFields().toArray(new AddFieldReq[0]));
schemaBuilder.addConsistencyLevel(milvusEntity.getConsistencyLevel()); schemaBuilder.addConsistencyLevel(milvusEntity.getConsistencyLevel());

View File

@ -18,4 +18,5 @@ public class MilvusEntity {
private List<AddFieldReq> milvusFields; private List<AddFieldReq> milvusFields;
private List<String> partitionName; private List<String> partitionName;
private ConsistencyLevel consistencyLevel; private ConsistencyLevel consistencyLevel;
private Boolean enableDynamicField;
} }