mirror of
https://gitee.com/dromara/MilvusPlus.git
synced 2025-12-07 01:18:23 +08:00
添加enableDynamicField功能
This commit is contained in:
parent
47def3cc9c
commit
ec82110cb0
@ -255,8 +255,36 @@ public class MilvusConverter {
|
|||||||
throw new IllegalArgumentException("the index does not exist, please define the index");
|
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(
|
CollectionSchemaBuilder schemaBuilder = new CollectionSchemaBuilder(
|
||||||
milvusEntity.getEnableDynamicField(),milvusEntity.getCollectionName(), client
|
false,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());
|
||||||
@ -266,6 +294,7 @@ public class MilvusConverter {
|
|||||||
log.info("-------create schema fun---------");
|
log.info("-------create schema fun---------");
|
||||||
schemaBuilder.createIndex(indexParams);
|
schemaBuilder.createIndex(indexParams);
|
||||||
log.info("-------create index---------");
|
log.info("-------create index---------");
|
||||||
|
}
|
||||||
// 创建分区
|
// 创建分区
|
||||||
List<String> partitionName = milvusEntity.getPartitionName();
|
List<String> partitionName = milvusEntity.getPartitionName();
|
||||||
if (CollectionUtils.isEmpty(partitionName)) {
|
if (CollectionUtils.isEmpty(partitionName)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user