Files
life-echo/api/.agents/skills/redis-development/rules/vector-hybrid-search.md
Sully 53e0065e3e refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)
配置 SSOT(TOML + .env)
统一错误契约
Auth 与事务边界
Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client
可观测性(OpenTelemetry + LGTM)
2026-05-22 13:44:50 +08:00

1.8 KiB

title, impact, impactDescription, tags, description, alwaysApply
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. In this rule, "hybrid" means filtered vector search. Redis and RedisVL also use "hybrid search" for text + vector fusion via FT.HYBRID / HybridQuery.

Correct: Apply filters to reduce search space.

from redisvl.query import VectorQuery
from redisvl.query.filter import Num, Tag

filters = (Tag("category") == "technology") & (Num("date") >= 2024) & (Num("date") <= 2025)

query = VectorQuery(
    vector=query_embedding,
    vector_field_name="embedding",
    return_fields=["content", "category", "date"],
    num_results=10,
    filter_expression=filters
)

results = index.query(query)

Incorrect: Searching entire vector space when filters apply.

# Bad: No filter - searches all vectors then filters client-side
results = index.query(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
  • Redis auto-selects the filtered vector execution strategy; tune hybrid_policy only when needed
  • For true text + vector fusion, use HybridQuery on Redis >= 8.4.0 with redis-py >= 7.1.0; use AggregateHybridQuery on earlier Redis versions

Reference: Redis Vector Search