hybrid search
Combining dense vector similarity search with traditional keyword (BM25) search for improved recall. Especially useful for queries with specific terminology or names.
Syntax
rag
results = alpha * vector_search(query) + (1-alpha) * bm25_search(query)Example
rag
# Hybrid search with Pinecone:
results = pinecone_index.query(
vector=dense_embedding,
sparse_vector=bm25_sparse_vector, # sparse from BM25
top_k=10,
alpha=0.5 # balance dense vs sparse
)
# Or with Weaviate:
result = (
client.query
.get("Document", ["content"])
.with_hybrid(query=query, alpha=0.5)
.with_limit(5)
.do()
)