File size: 1,016 Bytes
7f1ad1f
05cba35
086e188
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
    )