Module search

Module search 

Source
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 search

Structs§

FieldQuery
Field query
IndexManager
Index manager for RediSearch
Query
Search query AST
QueryBuilder
Builder for complex queries
RediSearchTranslator
RediSearch query translator
SearchCache
Search result cache with merkle-based invalidation
SearchCacheStats
Cache statistics
SearchField
Search field definition
SearchIndex
Search index definition
SqlQuery
SQL query result with parameterized placeholders
SqlTranslator
SQL query translator for JSON column queries
TranslatedQuery
Result of translating a query that may contain vector search. Contains the query string and any binary parameters needed for vector search.
VectorParams
Parameters for RediSearch vector fields.
VectorQuery
Vector similarity search query (KNN)

Enums§

DistanceMetric
Distance metric for vector similarity search.
FieldOperator
Field comparison operator
QueryNode
Query AST node
QueryValue
Query value type
SearchFieldType
Search field types supported by RediSearch
SqlParam
SQL parameter value
VectorAlgorithm
Vector search algorithm for RediSearch. HNSW provides faster queries with higher memory usage. FLAT provides exact results with O(n) query time.