|
from qdrant_client import QdrantClient |
|
from qdrant_client.models import Prefetch, FusionQuery, Fusion |
|
|
|
def query_keywords_search(query: str, client: QdrantClient, collection_name: str, sparse_embeddings): |
|
return client.query_points( |
|
collection_name=collection_name, |
|
prefetch=Prefetch(query=sparse_embeddings, using='title-sparse', limit=25), |
|
query=FusionQuery(fusion=Fusion.RRF), |
|
with_vectors=False, |
|
with_payload=True, |
|
limit=1 |
|
) |
|
|
|
def query_hybrid_search(query: str, client: QdrantClient, collection_name: str, dense_embeddings, sparse_embeddings): |
|
return client.query_points( |
|
collection_name=collection_name, |
|
prefetch=[ |
|
Prefetch(query=sparse_embeddings, using="text-sparse", limit=25), |
|
Prefetch(query=dense_embeddings[0], using="text-dense", limit=25) |
|
], |
|
query=FusionQuery(fusion=Fusion.RRF), |
|
with_vectors=False, |
|
with_payload=True, |
|
limit=10, |
|
score_threshold=0.95 |
|
) |