Skip to content

Bsb/ft hybrid support#21

Merged
bsbodden merged 6 commits intomainfrom
bsb/ft-hybrid-support
Feb 18, 2026
Merged

Bsb/ft hybrid support#21
bsbodden merged 6 commits intomainfrom
bsb/ft-hybrid-support

Conversation

@bsbodden
Copy link
Collaborator

No description provided.

Upgrade Jedis from 7.2.0 to 7.3.0 and implement the native FT.HYBRID
command for hybrid text+vector search with built-in score fusion.

- Rewrite HybridQuery to use FT.HYBRID with RRF/LINEAR combination
- Rename previous FT.AGGREGATE-based implementation to AggregateHybridQuery
- Add SearchIndex dispatch routing HybridQuery to jedis.ftHybrid()
- Add automatic fallback to AggregateHybridQuery when FT.HYBRID is unavailable
- Extract shared stopwords/tokenization to FullTextQueryHelper utility
- Add TextQuery scorer support
Assign monotonically increasing timestamps (1 microsecond offset per
message) in addMessages() to guarantee insertion order is preserved
when sorting by timestamp. Previously, messages added in a tight loop
could receive near-identical timestamps causing non-deterministic order.
Fix 68 integration test failures across multiple categories:

- Use TestContainers (RedisStackContainer) instead of hardcoded localhost
  for langchain4j, JsonFieldAlias, and BaseIntegrationTest
- Use assumeTrue for graceful skip when API keys or ML models unavailable
- Fix MultiVectorQuery assertions to expect @ prefix in APPLY expressions
- Remove invalid containsKey("id") assertions for aggregation results
- Add HybridQuery and AggregateHybridQuery unit and integration tests
- Update AdvancedQueries and BatchOperations integration tests
- Update hybrid query notebook with native FT.HYBRID examples
- Update advanced queries notebook with new query patterns
- Update getting-started docs and VCR testing docs
- Update demo READMEs and docker-compose configurations
- Bump notebook Jupyter dependencies for Jedis 7.3.0
Implement ExecutionCondition in VCRExtension to check Docker
availability before running tests. This prevents CI failures in
environments without Docker by disabling VCR tests instead of
throwing IllegalStateException.
@bsbodden bsbodden merged commit 8825bef into main Feb 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant