Skip to content

Commit d55ee6d

Browse files
authored
enahnce:[2.5] dump analyzer params when init field schema (#2845)
pr: #2844 Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
1 parent d2a5525 commit d55ee6d

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

pymilvus/client/prepare.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ def get_schema_from_collection_schema(
146146
)
147147
for k, v in f.params.items():
148148
kv_pair = common_types.KeyValuePair(
149-
key=str(k) if k != "mmap_enabled" else "mmap.enabled", value=ujson.dumps(v)
149+
key=str(k) if k != "mmap_enabled" else "mmap.enabled",
150+
value=ujson.dumps(v) if not isinstance(v, str) else str(v),
150151
)
151152
field_schema.type_params.append(kv_pair)
152153

@@ -224,7 +225,8 @@ def get_field_schema(
224225
raise ParamError(message="params should be dictionary type")
225226
kvs = [
226227
common_types.KeyValuePair(
227-
key=str(k) if k != "mmap_enabled" else "mmap.enabled", value=ujson.dumps(v)
228+
key=str(k) if k != "mmap_enabled" else "mmap.enabled",
229+
value=str(v),
228230
)
229231
for k, v in type_params.items()
230232
]
@@ -264,7 +266,6 @@ def get_schema(
264266
(field_schema, primary_field, auto_id_field) = cls.get_field_schema(
265267
field, primary_field, auto_id_field
266268
)
267-
268269
schema.fields.append(field_schema)
269270
return schema
270271

pymilvus/orm/schema.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,11 @@ def __init__(self, name: str, dtype: DataType, description: str = "", **kwargs)
414414
self.element_type = kwargs.get("element_type")
415415
if "mmap_enabled" in kwargs:
416416
self._type_params["mmap_enabled"] = kwargs["mmap_enabled"]
417+
418+
for key in ["analyzer_params", "multi_analyzer_params"]:
419+
if key in self._kwargs and isinstance(self._kwargs[key], dict):
420+
self._kwargs[key] = ujson.dumps(self._kwargs[key])
421+
417422
self._parse_type_params()
418423
self.is_function_output = False
419424

@@ -451,12 +456,6 @@ def _parse_type_params(self):
451456
if self._kwargs[k].lower() == "false":
452457
self._type_params[k] = False
453458
continue
454-
if k in ("analyzer_params", "multi_analyzer_params"):
455-
# TODO: a more complicate json may be reordered which
456-
# can still cause server_schema == schema to be False.
457-
# need a better approach.
458-
self._type_params[k] = ujson.dumps(self._kwargs[k])
459-
continue
460459
self._type_params[k] = self._kwargs[k]
461460

462461
@classmethod

0 commit comments

Comments
 (0)