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_weight

Default weight for BM25 text search.

default_vector_weight

Default weight for vector similarity.

index_name

The index name for this service.