Skip to main content

nodedb_query/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2
3//! Shared query-execution utilities used by every engine: BM25 scoring,
4//! text analysis (tokenization / normalization / stop words), expression
5//! evaluation helpers, MessagePack scan readers, and rank-fusion (RRF).
6//!
7//! This crate is consumed by `nodedb` (server), `nodedb-lite` (embedded),
8//! and `nodedb-fts` (full-text overlay). Functions are pure / `Send + Sync`
9//! and free of I/O — actual data fetch happens in the calling crate.
10
11pub mod agg_key;
12pub mod cast;
13pub mod chunk_text;
14pub mod expr;
15pub mod expr_parse;
16pub mod functions;
17pub mod fusion;
18pub mod geo_functions;
19pub mod json_expr;
20pub mod json_ops;
21pub mod metadata_filter;
22pub mod msgpack_scan;
23pub mod numeric_sum;
24pub mod partition_hash;
25pub mod scan_filter;
26pub mod simd_agg;
27pub mod simd_agg_i64;
28pub mod simd_filter;
29pub mod text_search;
30pub mod ts_functions;
31pub mod value_ops;
32pub mod window;
33
34pub use chunk_text::{ChunkError, ChunkStrategy, TextChunk, chunk_text};
35pub use expr::{BinaryOp, CastType, ComputedColumn, EvalError, SqlExpr};
36pub use fusion::{
37    DEFAULT_RRF_K, FusedResult, RankedResult, reciprocal_rank_fusion,
38    reciprocal_rank_fusion_linear, reciprocal_rank_fusion_weighted,
39};
40pub use json_expr::{compare_json, eval_expr_on_json};
41pub use nodedb_types::numeric_cmp;
42pub use numeric_sum::ExactSum;
43pub use partition_hash::{partition_hash, partition_hash_seeded};
44pub use scan_filter::ScanFilter;
45pub use window::{
46    FrameBound, WindowError, WindowFrame, WindowFuncSpec, evaluate_window_functions,
47    evaluate_window_functions_value,
48};