mirror of
https://gitee.com/dromara/MilvusPlus.git
synced 2025-12-06 08:58:26 +08:00
添加enableDynamicField功能
This commit is contained in:
parent
ec82110cb0
commit
272af444ea
@ -27,6 +27,7 @@ public class CollectionSchemaBuilder {
|
||||
this.collectionName = collectionName;
|
||||
this.wrapper = wrapper;
|
||||
this.schema = wrapper.createSchema();
|
||||
this.schema.setEnableDynamicField(enableDynamicField);
|
||||
this.enableDynamicField=enableDynamicField;
|
||||
}
|
||||
public CollectionSchemaBuilder(String collectionName, MilvusClientV2 wrapper) {
|
||||
|
||||
@ -255,36 +255,8 @@ public class MilvusConverter {
|
||||
throw new IllegalArgumentException("the index does not exist, please define the index");
|
||||
}
|
||||
// 创建新集合
|
||||
if(milvusEntity.getEnableDynamicField()){
|
||||
List<AddFieldReq> milvusFields = milvusEntity.getMilvusFields();
|
||||
AddFieldReq primaryKeyField = milvusFields.stream()
|
||||
.filter(v -> v.getIsPrimaryKey()!=null&&v.getIsPrimaryKey())
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new NoSuchElementException("No primary key field found"));
|
||||
AddFieldReq vectorField = milvusFields.stream()
|
||||
.filter(v->v.getDimension()!=null&&v.getDimension()>0)
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new NoSuchElementException("No vector field found"));
|
||||
IndexParam vectorIndexParams = indexParams.stream().filter(v -> Objects.equals(v.getFieldName(), vectorField.getFieldName()))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new NoSuchElementException("No vector index params found"));
|
||||
|
||||
CreateCollectionReq.CreateCollectionReqBuilder<?, ?> builder = CreateCollectionReq.builder();
|
||||
builder.enableDynamicField(milvusEntity.getEnableDynamicField()).
|
||||
collectionName(milvusEntity.getCollectionName()).
|
||||
idType(primaryKeyField.getDataType()).
|
||||
primaryFieldName(primaryKeyField.getFieldName()).
|
||||
maxLength(primaryKeyField.getMaxLength()).
|
||||
autoID(primaryKeyField.getAutoID()).
|
||||
vectorFieldName(vectorField.getFieldName()).
|
||||
dimension(vectorField.getDimension()).
|
||||
metricType(vectorIndexParams.getMetricType().name()).
|
||||
consistencyLevel(milvusEntity.getConsistencyLevel());
|
||||
CreateCollectionReq build = builder.build();
|
||||
client.createCollection(build);
|
||||
}else {
|
||||
CollectionSchemaBuilder schemaBuilder = new CollectionSchemaBuilder(
|
||||
false,milvusEntity.getCollectionName(), client
|
||||
milvusEntity.getEnableDynamicField(),milvusEntity.getCollectionName(), client
|
||||
);
|
||||
schemaBuilder.addField(milvusEntity.getMilvusFields().toArray(new AddFieldReq[0]));
|
||||
schemaBuilder.addConsistencyLevel(milvusEntity.getConsistencyLevel());
|
||||
@ -294,7 +266,6 @@ public class MilvusConverter {
|
||||
log.info("-------create schema fun---------");
|
||||
schemaBuilder.createIndex(indexParams);
|
||||
log.info("-------create index---------");
|
||||
}
|
||||
// 创建分区
|
||||
List<String> partitionName = milvusEntity.getPartitionName();
|
||||
if (CollectionUtils.isEmpty(partitionName)) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user