From 062a5f4371e98cd86b12533f98e9329ed888714d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 5 Feb 2026 19:19:26 +0800 Subject: [PATCH] bugfix --- vdb/basevdb.py | 3 +++ vdb/milvus.py | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/vdb/basevdb.py b/vdb/basevdb.py index 334c050..70127d3 100644 --- a/vdb/basevdb.py +++ b/vdb/basevdb.py @@ -8,6 +8,9 @@ class BaseVDB: output_fields=None): pass + def get_db_type(dtype: str): + return self.dbtypes.get(dtype) + def upsert(self, collection_name, data_dicts, partition_name=None): pass diff --git a/vdb/milvus.py b/vdb/milvus.py index fee777d..66501c6 100644 --- a/vdb/milvus.py +++ b/vdb/milvus.py @@ -10,7 +10,15 @@ from pymilvus import ( class MilvusManager(BaseVDB): _instance = None _lock = Lock() - + dbtypes = { + "str": DataType.VARCHAR, + "int": DataType.INT32, + "bool": DataType.BOOL, + "float": DataType.FLOAT, + "fvector": DataType.FLOAT_VECTOR, + "bvector": DataType.BINARY_VECTOR, + "json": DataType.JSON + } def __new__(cls): with cls._lock: if cls._instance is None: @@ -67,7 +75,7 @@ class MilvusManager(BaseVDB): for cfg in fields_config: field = FieldSchema( name=cfg['name'], - dtype=cfg['type'], + dtype=self.get_db_type(cfg['type']), is_primary=cfg.get('is_primary', False), auto_id=cfg.get('auto_id', False), dim=cfg.get('dim'), @@ -80,7 +88,8 @@ class MilvusManager(BaseVDB): # 自动为向量字段创建索引 (内网推荐 HNSW) for cfg in fields_config: - if cfg['type'] in [DataType.FLOAT_VECTOR, DataType.BINARY_VECTOR]: + dbtype = self.get_db_type(cfg['type']) + if dbtype in [DataType.FLOAT_VECTOR, DataType.BINARY_VECTOR]: index_params = { "metric_type": "L2", "index_type": "HNSW",