Expand description
Search Infrastructure
Full-text search across items using RediSearch and MySQL.
§Architecture
QueryBuilder (AST)
↓
├─→ RediSearchTranslator → FT.SEARCH syntax
└─→ SqlTranslator → MySQL JSON_EXTRACT queries§Index Registration
sync-engine stays “dumb” about content but provides index lifecycle management:
// Register schema at startup using builder pattern
let index = SearchIndex::new("users", "crdt:users:")
.text_sortable("name")
.text("email")
.numeric_sortable("age")
.tag("roles");
engine.create_search_index(index).await.unwrap();
// RediSearch auto-indexes matching JSON documents
// Search using Query AST
let query = Query::field_eq("name", "Alice");
let results = engine.search("users", &query).await.unwrap();§Query Language (Lucene/RediSearch syntax)
@name:Alice - Field equals
@age:[25 40] - Numeric range
@tags:{rust|database} - Tag membership (OR)
@name:Alice AND @age:[25 40] - Boolean AND
@status:active | @status:pending - Boolean OR
-@deleted:true - Boolean NOT
@name:*alice* - Wildcard contains
@name:ali* - Prefix match
@name:%alice% - Fuzzy match (Levenshtein)
(filter)=>[KNN 10 @embedding $blob] - Vector KNN searchStructs§
- Field
Query - Field query
- Index
Manager - Index manager for RediSearch
- Query
- Search query AST
- Query
Builder - Builder for complex queries
- Redi
Search Translator - RediSearch query translator
- Search
Cache - Search result cache with merkle-based invalidation
- Search
Cache Stats - Cache statistics
- Search
Field - Search field definition
- Search
Index - Search index definition
- SqlQuery
- SQL query result with parameterized placeholders
- SqlTranslator
- SQL query translator for JSON column queries
- Translated
Query - Result of translating a query that may contain vector search. Contains the query string and any binary parameters needed for vector search.
- Vector
Params - Parameters for RediSearch vector fields.
- Vector
Query - Vector similarity search query (KNN)
Enums§
- Distance
Metric - Distance metric for vector similarity search.
- Field
Operator - Field comparison operator
- Query
Node - Query AST node
- Query
Value - Query value type
- Search
Field Type - Search field types supported by RediSearch
- SqlParam
- SQL parameter value
- Vector
Algorithm - Vector search algorithm for RediSearch. HNSW provides faster queries with higher memory usage. FLAT provides exact results with O(n) query time.