redis_openai_agents.HybridSearchService#
- class HybridSearchService(redis_url, index_name, default_vector_weight=0.7, default_text_weight=0.3)[source]#
Combined BM25 + Vector search using RedisVL.
Performs both lexical (BM25) and semantic (vector) search, then combines results using Reciprocal Rank Fusion (RRF).
Example
>>> service = HybridSearchService( ... redis_url="redis://localhost:6379", ... index_name="documents", ... ) >>> await service.index_documents([ ... {"content": "Redis is a fast database.", "metadata": {"source": "docs"}}, ... ]) >>> results = await service.search("fast database", k=5)
- Parameters:
redis_url (str) – Redis connection URL
index_name (str) – Name for the search indices
default_vector_weight (float) – Default weight for vector similarity (0-1)
default_text_weight (float) – Default weight for BM25 text search (0-1)
Initialize the hybrid search service.
- Parameters:
redis_url (str) – Redis connection URL
index_name (str) – Name for the search indices
default_vector_weight (float) – Default weight for vector similarity (0-1)
default_text_weight (float) – Default weight for BM25 text search (0-1)
- Raises:
ValueError – If weights are not in valid range
- __init__(redis_url, index_name, default_vector_weight=0.7, default_text_weight=0.3)[source]#
Initialize the hybrid search service.
- Parameters:
redis_url (str) – Redis connection URL
index_name (str) – Name for the search indices
default_vector_weight (float) – Default weight for vector similarity (0-1)
default_text_weight (float) – Default weight for BM25 text search (0-1)
- Raises:
ValueError – If weights are not in valid range
- Return type:
None
Methods
__init__(redis_url, index_name[, ...])Initialize the hybrid search service.
count()Count indexed documents.
delete_all()Delete all documents from both stores.
index_documents(documents)Index documents for hybrid search.
search(query[, k, vector_weight, ...])Hybrid search combining semantic and lexical matching.
Attributes
default_text_weightDefault weight for BM25 text search.
default_vector_weightDefault weight for vector similarity.
index_nameThe index name for this service.