未验证 提交 d7dd7831 编写于 作者: B binbin 提交者: GitHub

Update retrieve vector cases (#26376)

Signed-off-by: Nbinbin lv <binbin.lv@zilliz.com>
上级 2fd52e7f
...@@ -564,7 +564,7 @@ def gen_search_param(index_type, metric_type="L2"): ...@@ -564,7 +564,7 @@ def gen_search_param(index_type, metric_type="L2"):
binary_search_params = {"metric_type": metric_type, "params": {"nprobe": nprobe}} binary_search_params = {"metric_type": metric_type, "params": {"nprobe": nprobe}}
search_params.append(binary_search_params) search_params.append(binary_search_params)
elif index_type in ["HNSW"]: elif index_type in ["HNSW"]:
for ef in [64, 32768]: for ef in [64, 1500, 32768]:
hnsw_search_param = {"metric_type": metric_type, "params": {"ef": ef}} hnsw_search_param = {"metric_type": metric_type, "params": {"ef": ef}}
search_params.append(hnsw_search_param) search_params.append(hnsw_search_param)
elif index_type == "ANNOY": elif index_type == "ANNOY":
...@@ -572,12 +572,14 @@ def gen_search_param(index_type, metric_type="L2"): ...@@ -572,12 +572,14 @@ def gen_search_param(index_type, metric_type="L2"):
annoy_search_param = {"metric_type": metric_type, "params": {"search_k": search_k}} annoy_search_param = {"metric_type": metric_type, "params": {"search_k": search_k}}
search_params.append(annoy_search_param) search_params.append(annoy_search_param)
elif index_type == "DISKANN": elif index_type == "DISKANN":
for search_list in [20, 30]: for search_list in [20, 300, 1500]:
diskann_search_param = {"metric_type": metric_type, "params": {"search_list": search_list}} diskann_search_param = {"metric_type": metric_type, "params": {"search_list": search_list}}
search_params.append(diskann_search_param) search_params.append(diskann_search_param)
else: else:
log.error("Invalid index_type.") log.error("Invalid index_type.")
raise Exception("Invalid index_type.") raise Exception("Invalid index_type.")
log.debug(search_params)
return search_params return search_params
......
...@@ -11,6 +11,7 @@ default_nb_medium = 5000 ...@@ -11,6 +11,7 @@ default_nb_medium = 5000
default_top_k = 10 default_top_k = 10
default_nq = 2 default_nq = 2
default_limit = 10 default_limit = 10
max_limit = 16384
default_search_params = {"metric_type": "L2", "params": {"nprobe": 10}} default_search_params = {"metric_type": "L2", "params": {"nprobe": 10}}
default_search_ip_params = {"metric_type": "IP", "params": {"nprobe": 10}} default_search_ip_params = {"metric_type": "IP", "params": {"nprobe": 10}}
default_search_binary_params = {"metric_type": "JACCARD", "params": {"nprobe": 10}} default_search_binary_params = {"metric_type": "JACCARD", "params": {"nprobe": 10}}
......
...@@ -30,6 +30,7 @@ default_nb_medium = ct.default_nb_medium ...@@ -30,6 +30,7 @@ default_nb_medium = ct.default_nb_medium
default_nq = ct.default_nq default_nq = ct.default_nq
default_dim = ct.default_dim default_dim = ct.default_dim
default_limit = ct.default_limit default_limit = ct.default_limit
max_limit = ct.max_limit
default_search_exp = "int64 >= 0" default_search_exp = "int64 >= 0"
default_json_search_exp = "json_field[\"number\"] >= 0" default_json_search_exp = "json_field[\"number\"] >= 0"
default_search_string_exp = "varchar >= \"0\"" default_search_string_exp = "varchar >= \"0\""
...@@ -2911,7 +2912,8 @@ class TestCollectionSearch(TestcaseBase): ...@@ -2911,7 +2912,8 @@ class TestCollectionSearch(TestcaseBase):
zip(ct.all_index_types[:6], zip(ct.all_index_types[:6],
ct.default_index_params[:6])) ct.default_index_params[:6]))
@pytest.mark.parametrize("metrics", ct.float_metrics) @pytest.mark.parametrize("metrics", ct.float_metrics)
def test_search_output_field_vector_after_different_index_metrics(self, index, params, metrics): @pytest.mark.parametrize("limit", [20, 1200])
def test_search_output_field_vector_after_different_index_metrics(self, index, params, metrics, limit):
""" """
target: test search with output vector field after different index target: test search with output vector field after different index
method: 1. create a collection and insert data method: 1. create a collection and insert data
...@@ -2929,15 +2931,23 @@ class TestCollectionSearch(TestcaseBase): ...@@ -2929,15 +2931,23 @@ class TestCollectionSearch(TestcaseBase):
collection_w.load() collection_w.load()
# 3. search with output field vector # 3. search with output field vector
search_params = cf.gen_search_param(index, metrics)[0] search_params = cf.gen_search_param(index, metrics)
collection_w.search(vectors[:1], default_search_field, for search_param in search_params:
search_params, default_limit, default_search_exp, log.info(search_param)
output_fields=[field_name], if index == "HNSW":
check_task=CheckTasks.check_search_results, limit = search_param["params"]["ef"]
check_items={"nq": 1, if limit > max_limit:
"limit": default_limit, limit = default_nb
"original_entities": _vectors, if index == "DISKANN":
"output_fields": [field_name]}) limit = search_param["params"]["search_list"]
collection_w.search(vectors[:1], default_search_field,
search_param, limit, default_search_exp,
output_fields=[field_name],
check_task=CheckTasks.check_search_results,
check_items={"nq": 1,
"limit": limit,
"original_entities": _vectors,
"output_fields": [field_name]})
@pytest.mark.tags(CaseLabel.L2) @pytest.mark.tags(CaseLabel.L2)
@pytest.mark.parametrize("index", ["BIN_FLAT", "BIN_IVF_FLAT"]) @pytest.mark.parametrize("index", ["BIN_FLAT", "BIN_IVF_FLAT"])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册