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