mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 19:31:51 +08:00
* #1910 C++ SDK GetIDsInSegment could not work for large dataset (#1911) Signed-off-by: groot <yihua.mo@zilliz.com> * #1903 Fix invalid annoy result (#1912) Signed-off-by: shengjun.li <shengjun.li@zilliz.com> * #1914: Partition max size should be 4096 (#1915) Signed-off-by: jinhai <hai.jin@zilliz.com> * add log (#1913) * add log Signed-off-by: groot <yihua.mo@zilliz.com> * add log Signed-off-by: groot <yihua.mo@zilliz.com> * fix ut Signed-off-by: groot <yihua.mo@zilliz.com> * partition limit 4096 Signed-off-by: groot <yihua.mo@zilliz.com> * fix py test Signed-off-by: groot <yihua.mo@zilliz.com> * update server version (#1916) Signed-off-by: zw <zw@zilliz.com> * Update to 0.8.0 (#1918) * Create new branch 0.8.0 and change preload_table to preload_collection Signed-off-by: jinhai <hai.jin@zilliz.com> * Fix format Signed-off-by: JinHai-CN <hai.jin@zilliz.com> * Update CHANGELOG Signed-off-by: jinhai <hai.jin@zilliz.com> * Update CHANGELOG Signed-off-by: jinhai <hai.jin@zilliz.com> * update helm version Signed-off-by: zw <zw@zilliz.com> * Update CHANGELOG Signed-off-by: jinhai <hai.jin@zilliz.com> Co-authored-by: zw <zw@zilliz.com> * fix issue 1901 (#1920) * fix issue 1901 Signed-off-by: cmli <chengming.li@zilliz.com> * update change log Signed-off-by: cmli <chengming.li@zilliz.com> Co-authored-by: cmli <chengming.li@zilliz.com> * #1900 (#1923) * add log Signed-off-by: yhmo <yihua.mo@zilliz.com> * fix #1900 Signed-off-by: groot <yihua.mo@zilliz.com> * Upgrade mishards to 0.8.0 (#1933) * update grpc server of milvus & rename table name to collection Signed-off-by: Yhz <yinghao.zou@zilliz.com> * update changlog Signed-off-by: Yhz <yinghao.zou@zilliz.com> * [skip ci] Skip CI Signed-off-by: Yhz <yinghao.zou@zilliz.com> * [skip ci] Update changlog Signed-off-by: Yhz <yinghao.zou@zilliz.com> * Caiyd 1883 fix rw (#1926) * #1883 use DiskIO Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * fix logic error Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * update changelog Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * retry CI Signed-off-by: yudong.cai <yudong.cai@zilliz.com> * Update CHANGELOG Signed-off-by: JinHai-CN <hai.jin@zilliz.com> * update changelog Signed-off-by: yudong.cai <yudong.cai@zilliz.com> Co-authored-by: JinHai-CN <hai.jin@zilliz.com> * #1928 Too many data and uid copies when loading files (#1931) Signed-off-by: shengjun.li <shengjun.li@zilliz.com> Co-authored-by: Jin Hai <hai.jin@zilliz.com> * Update mishards configure files (#1938) * Update web readme Signed-off-by: Yhz <yinghao.zou@zilliz.com> * [skip ci] update configure files Signed-off-by: Yhz <yinghao.zou@zilliz.com> * [skip ci] rename table to collection Signed-off-by: Yhz <yinghao.zou@zilliz.com> * Update test.groovy Signed-off-by: jinhai <hai.jin@zilliz.com> * Update test.groovy Signed-off-by: jinhai <hai.jin@zilliz.com> * Fix lint Signed-off-by: JinHai-CN <hai.jin@zilliz.com> * Fix compiling error Signed-off-by: jinhai <hai.jin@zilliz.com> Co-authored-by: groot <yhmo@zeronedata.com> Co-authored-by: shengjun.li <49774184+shengjun1985@users.noreply.github.com> Co-authored-by: del-zhenwu <56623710+del-zhenwu@users.noreply.github.com> Co-authored-by: zw <zw@zilliz.com> Co-authored-by: op-hunter <ophunter52@gmail.com> Co-authored-by: cmli <chengming.li@zilliz.com> Co-authored-by: BossZou <40255591+BossZou@users.noreply.github.com> Co-authored-by: Cai Yudong <yudong.cai@zilliz.com>
130 lines
3.4 KiB
Python
130 lines
3.4 KiB
Python
import ujson
|
|
from milvus import Status
|
|
from functools import wraps
|
|
|
|
|
|
def error_status(func):
|
|
@wraps(func)
|
|
def inner(*args, **kwargs):
|
|
try:
|
|
results = func(*args, **kwargs)
|
|
except Exception as e:
|
|
return Status(code=Status.UNEXPECTED_ERROR, message=str(e)), None
|
|
|
|
return Status(code=0, message="Success"), results
|
|
|
|
return inner
|
|
|
|
|
|
class GrpcArgsParser(object):
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_CollectionSchema(cls, param):
|
|
_collection_schema = {
|
|
'collection_name': param.collection_name,
|
|
'dimension': param.dimension,
|
|
'index_file_size': param.index_file_size,
|
|
'metric_type': param.metric_type
|
|
}
|
|
|
|
return param.status, _collection_schema
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_CollectionName(cls, param):
|
|
return param.collection_name
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_FlushParam(cls, param):
|
|
return list(param.collection_name_array)
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_Index(cls, param):
|
|
_index = {
|
|
'index_type': param.index_type,
|
|
'params': param.extra_params[0].value
|
|
}
|
|
|
|
return _index
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_IndexParam(cls, param):
|
|
_collection_name = param.collection_name
|
|
_index_type = param.index_type
|
|
_index_param = {}
|
|
|
|
for params in param.extra_params:
|
|
if params.key == 'params':
|
|
_index_param = ujson.loads(str(params.value))
|
|
|
|
return _collection_name, _index_type, _index_param
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_Command(cls, param):
|
|
_cmd = param.cmd
|
|
|
|
return _cmd
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_RowRecord(cls, param):
|
|
return list(param.vector_data)
|
|
|
|
@classmethod
|
|
def parse_proto_PartitionParam(cls, param):
|
|
_collection_name = param.collection_name
|
|
_tag = param.tag
|
|
|
|
return _collection_name, _tag
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_SearchParam(cls, param):
|
|
_collection_name = param.collection_name
|
|
_topk = param.topk
|
|
|
|
if len(param.extra_params) == 0:
|
|
raise Exception("Search param loss")
|
|
_params = ujson.loads(str(param.extra_params[0].value))
|
|
|
|
_query_record_array = []
|
|
if param.query_record_array:
|
|
for record in param.query_record_array:
|
|
if record.float_data:
|
|
_query_record_array.append(list(record.float_data))
|
|
else:
|
|
_query_record_array.append(bytes(record.binary_data))
|
|
else:
|
|
raise Exception("Search argument parse error: record array is empty")
|
|
|
|
return _collection_name, _query_record_array, _topk, _params
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_DeleteByIDParam(cls, param):
|
|
_collection_name = param.collection_name
|
|
_id_array = list(param.id_array)
|
|
|
|
return _collection_name, _id_array
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_VectorIdentity(cls, param):
|
|
_collection_name = param.collection_name
|
|
_id = param.id
|
|
|
|
return _collection_name, _id
|
|
|
|
@classmethod
|
|
@error_status
|
|
def parse_proto_GetVectorIDsParam(cls, param):
|
|
_collection__name = param.collection_name
|
|
_segment_name = param.segment_name
|
|
|
|
return _collection__name, _segment_name
|