skills/redis-development/rules/vector-hybrid-search.md

1.4 KiB

title impact impactDescription tags description alwaysApply
Use Hybrid Search for Better Results MEDIUM Combining vector + filters improves relevance and reduces search space vector, hybrid, filters, redisvl, search Use Hybrid Search for Better Results true

Use Hybrid Search for Better Results

Combine vector similarity with attribute filtering for more relevant results.

Correct: Apply filters to reduce search space.

from redisvl.query import VectorQuery

query = VectorQuery(
    vector=query_embedding,
    vector_field_name="embedding",
    return_fields=["content", "category", "date"],
    num_results=10,
    filter_expression="@category:{technology} @date:[2024 2025]"
)

results = index.search(query)

Incorrect: Searching entire vector space when filters apply.

# Bad: No filter - searches all vectors then filters client-side
results = index.search(VectorQuery(
    vector=query_embedding,
    vector_field_name="embedding",
    num_results=1000
))
# Client-side filtering - wasteful
filtered = [r for r in results if r["category"] == "technology"]

Tips:

  • Use TAG fields for category filters
  • Use NUMERIC fields for date/price ranges
  • Filters are applied before vector search, reducing computation

Reference: Redis Hybrid Queries