mirror of
https://gitee.com/dromara/MilvusPlus.git
synced 2025-12-06 08:58:26 +08:00
!53 支持动态字段插入功能 & MilvusField 支持分区键为true时, 设置集合分区数量
Merge pull request !53 from CodeYuan-Y/main
This commit is contained in:
commit
9f4f92871b
@ -75,6 +75,11 @@ public @interface MilvusField {
|
||||
*/
|
||||
boolean isPartitionKey() default false;
|
||||
|
||||
/**
|
||||
* 分区键为true时, 分区数量
|
||||
*/
|
||||
int numPartitions() default -1;
|
||||
|
||||
/**
|
||||
* 启动分析器
|
||||
*/
|
||||
|
||||
@ -21,6 +21,7 @@ public class CollectionSchemaBuilder {
|
||||
private ConsistencyLevel consistencyLevel=ConsistencyLevel.BOUNDED;
|
||||
private Boolean enableDynamicField=false;
|
||||
private List<CreateCollectionReq.Function> functions;
|
||||
private Integer numPartitions;
|
||||
|
||||
|
||||
public CollectionSchemaBuilder(Boolean enableDynamicField,String collectionName, MilvusClientV2 wrapper) {
|
||||
@ -51,6 +52,14 @@ public class CollectionSchemaBuilder {
|
||||
schema.addFunction(function);
|
||||
}
|
||||
}
|
||||
|
||||
public void addNumPartitions(Integer numPartitions){
|
||||
if (numPartitions < 1) {
|
||||
return;
|
||||
}
|
||||
this.numPartitions=numPartitions;
|
||||
}
|
||||
|
||||
public void addConsistencyLevel(ConsistencyLevel level){
|
||||
this.consistencyLevel=level;
|
||||
}
|
||||
@ -63,7 +72,8 @@ public class CollectionSchemaBuilder {
|
||||
collectionName(this.collectionName).
|
||||
collectionSchema(this.schema).
|
||||
consistencyLevel(this.consistencyLevel).
|
||||
enableDynamicField(this.enableDynamicField)
|
||||
enableDynamicField(this.enableDynamicField).
|
||||
numPartitions(this.numPartitions)
|
||||
.build();
|
||||
wrapper.createCollection(req);
|
||||
}
|
||||
|
||||
@ -106,6 +106,9 @@ public class MilvusConverter {
|
||||
if (fieldAnnotation.isPrimaryKey()) {
|
||||
CollectionToPrimaryCache.collectionToPrimary.put(collectionName, fieldName);
|
||||
}
|
||||
if (fieldAnnotation.isPartitionKey()) {
|
||||
milvus.setNumPartitions(fieldAnnotation.numPartitions());
|
||||
}
|
||||
// 构建Milvus字段描述
|
||||
AddFieldReq.AddFieldReqBuilder<?, ?> builder = AddFieldReq.builder()
|
||||
.fieldName(fieldName)
|
||||
@ -263,6 +266,7 @@ public class MilvusConverter {
|
||||
schemaBuilder.addField(milvusEntity.getMilvusFields().toArray(new AddFieldReq[0]));
|
||||
schemaBuilder.addConsistencyLevel(milvusEntity.getConsistencyLevel());
|
||||
schemaBuilder.addFun(milvusEntity.getFunctions());
|
||||
schemaBuilder.addNumPartitions(milvusEntity.getNumPartitions());
|
||||
log.info("-------create schema---------");
|
||||
schemaBuilder.createSchema();
|
||||
log.info("-------create schema fun---------");
|
||||
|
||||
@ -116,6 +116,8 @@ public class LambdaInsertWrapper<T> extends AbstractChainWrapper<T> implements
|
||||
String tk = propertyCache.functionToPropertyMap.get(key);
|
||||
if (StringUtils.isNotEmpty(tk)) {
|
||||
GsonUtil.put(jsonObject,tk,value);
|
||||
} else if (conversionCache.getMilvusEntity().getEnableDynamicField()){
|
||||
GsonUtil.put(jsonObject,key,value);
|
||||
}
|
||||
}
|
||||
if(conversionCache.isAutoID()){
|
||||
|
||||
@ -21,4 +21,5 @@ public class MilvusEntity {
|
||||
private ConsistencyLevel consistencyLevel;
|
||||
private Boolean enableDynamicField;
|
||||
private List<CreateCollectionReq.Function> functions;
|
||||
private Integer numPartitions;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user