Skip to main content

Crate nodedb_fts

Crate nodedb_fts 

Source
Expand description

Full-text search engine shared by Origin, Lite, and WASM: BMW-optimized BM25 with 128-doc block pruning, 16 Snowball stemmers, 27-language stop words, CJK bigram tokenization (always available) plus optional dictionary segmentation (lindera/jieba/icu) wired in unconditionally, posting compression (delta + variable-width bitpack + SIMD unpack), LSM segment store, fuzzy match, synonyms, highlighting, n-gram / edge-ngram, and hybrid vector+text fusion.

FTS is a cross-engine overlay — it indexes text fields from any collection without owning the row storage. Analyzer choice is made per collection at DDL time via WITH (analyzer='...').

Re-exports§

pub use analyzer::AnalyzerRegistry;
pub use analyzer::EdgeNgramAnalyzer;
pub use analyzer::KeywordAnalyzer;
pub use analyzer::LanguageAnalyzer;
pub use analyzer::NgramAnalyzer;
pub use analyzer::SimpleAnalyzer;
pub use analyzer::StandardAnalyzer;
pub use analyzer::SynonymMap;
pub use analyzer::TextAnalyzer;
pub use analyzer::analyze;
pub use backend::FtsBackend;
pub use block::CompactPosting;
pub use block::PostingBlock;
pub use fuzzy::fuzzy_discount;
pub use fuzzy::fuzzy_match;
pub use fuzzy::levenshtein;
pub use fuzzy::max_distance_for_length;
pub use index::FtsIndex;
pub use index::FtsIndexError;
pub use index::MAX_INDEXABLE_SURROGATE;
pub use index::SynonymGroupRecord;
pub use posting::Bm25Params;
pub use posting::MatchOffset;
pub use posting::Posting;
pub use posting::QueryMode;
pub use posting::TextSearchResult;
pub use search::query_parser::InvalidQuery;
pub use search::query_parser::ParsedQuery;

Modules§

analyzer
backend
block
128-document posting block with compressed storage.
bm25
BM25 scoring function.
codec
fuzzy
Fuzzy string matching via Levenshtein edit distance.
highlight
Highlight and match offset utilities for search results.
index
lsm
posting
Core types for the full-text search engine.
search

Structs§

Surrogate
Global surrogate identifier.