Переглянути джерело

Support multi-language analyzer (#1403)

Signed-off-by: yhmo <yihua.mo@zilliz.com>
groot 1 тиждень тому
батько
коміт
13d3b9f6e3

+ 1 - 0
sdk-core/src/main/java/io/milvus/v2/service/collection/request/AddFieldReq.java

@@ -58,6 +58,7 @@ public class AddFieldReq {
 
     // If a specific field, such as maxLength, has been specified, it will override the corresponding key's value in typeParams.
     private Map<String, String> typeParams;
+    Map<String, Object> multiAnalyzerParams; // for multi‑language analyzers
 
     AddFieldReq setDefaultValue(Object obj) {
         enableDefaultValue = true; // automatically set this flag

+ 2 - 0
sdk-core/src/main/java/io/milvus/v2/service/collection/request/CreateCollectionReq.java

@@ -156,6 +156,7 @@ public class CreateCollectionReq {
                     .enableMatch(addFieldReq.getEnableMatch())
                     .analyzerParams(addFieldReq.getAnalyzerParams())
                     .typeParams(addFieldReq.getTypeParams())
+                    .multiAnalyzerParams(addFieldReq.getMultiAnalyzerParams())
                     .build();
             if (addFieldReq.getDataType().equals(DataType.Array)) {
                 if (addFieldReq.getElementType() == null) {
@@ -221,6 +222,7 @@ public class CreateCollectionReq {
 
         // If a specific field, such as maxLength, has been specified, it will override the corresponding key's value in typeParams.
         private Map<String, String> typeParams;
+        Map<String, Object> multiAnalyzerParams; // for multi‑language analyzers
     }
 
     @Data

+ 4 - 0
sdk-core/src/main/java/io/milvus/v2/utils/SchemaUtils.java

@@ -106,6 +106,10 @@ public class SchemaUtils {
             String params = JsonUtils.toJson(fieldSchema.getAnalyzerParams());
             typeParams.put("analyzer_params", params);
         }
+        if (fieldSchema.getMultiAnalyzerParams() != null) {
+            String params = JsonUtils.toJson(fieldSchema.getMultiAnalyzerParams());
+            typeParams.put("multi_analyzer_params", params);
+        }
 
         List<KeyValuePair> typeParamsList = AssembleKvPair(typeParams);
         if (CollectionUtils.isNotEmpty(typeParamsList)) {