Skip to content

Commit fe35b85

Browse files
committed
rescore with prefetch option
1 parent fec61b5 commit fe35b85

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

engine/clients/qdrant/search.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import httpx
55
from qdrant_client import QdrantClient
66
from qdrant_client._pydantic_compat import construct
7-
from qdrant_client.http import models as rest
7+
from qdrant_client import models
88

99
from dataset_reader.base_reader import Query
1010
from engine.base_client.search import BaseSearcher
@@ -37,24 +37,35 @@ def init_client(cls, host, distance, connection_params: dict, search_params: dic
3737

3838
@classmethod
3939
def search_one(cls, query: Query, top: int) -> List[Tuple[int, float]]:
40+
4041
# Can query only one till we introduce re-ranking in the benchmarks
4142
if query.sparse_vector is None:
4243
query_vector = query.vector
4344
else:
4445
query_vector = construct(
45-
rest.SparseVector,
46+
models.SparseVector,
4647
indices=query.sparse_vector.indices,
4748
values=query.sparse_vector.values,
4849
)
4950

51+
52+
prefetch = cls.search_params.get("prefetch")
53+
54+
if prefetch:
55+
prefetch = models.Prefetch(
56+
**prefetch,
57+
query=query_vector,
58+
)
59+
5060
try:
5161
res = cls.client.query_points(
5262
using="sparse" if query.sparse_vector else None,
5363
collection_name=QDRANT_COLLECTION_NAME,
64+
prefetch=prefetch,
5465
query=query_vector,
5566
query_filter=cls.parser.parse(query.meta_conditions),
5667
limit=top,
57-
search_params=rest.SearchParams(**cls.search_params.get("config", {})),
68+
search_params=models.SearchParams(**cls.search_params.get("config", {})),
5869
with_payload=cls.search_params.get("with_payload", False),
5970
)
6071
except Exception as ex:

experiments/configurations/qdrant-single-node.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,18 @@
5555
{
5656
"parallel": 8,
5757
"config": {
58-
"hnsw_ef": 128,
5958
"quantization": {
6059
"rescore": true
6160
}
61+
},
62+
"prefetch": {
63+
"limit": 400,
64+
"params": {
65+
"hnsw_ef": 128,
66+
"quantization": {
67+
"rescore": false
68+
}
69+
}
6270
}
6371
}
6472
],

0 commit comments

Comments
 (0)