pub const MAX_QUERY_TERMS: usize = 64;
pub const MAX_CANDIDATE_OVERSUBSCRIPTION: usize = 2;
pub const fn max_candidate_limit(result_window: usize) -> usize {
result_window.saturating_mul(MAX_CANDIDATE_OVERSUBSCRIPTION)
}
mod all;
mod bm25;
pub(crate) mod bmp;
pub(crate) use planner::bmp_executor_limit;
mod boolean;
mod boost;
pub mod candidate_scoring;
mod collector;
pub mod docset;
mod filtered;
mod fusion;
pub use filtered::FilteredQuery;
mod global_stats;
mod phrase;
mod planner;
mod prefix;
mod proximity;
mod range;
mod regex;
mod required_text;
mod reranker;
mod scoring;
#[cfg(test)]
mod scoring_tests;
pub(crate) mod seismic;
mod term;
mod term_pattern;
mod term_union;
mod text_mapping;
mod traits;
mod vector;
mod wildcard;
pub use all::AllQuery;
pub use bm25::*;
pub use boolean::*;
pub use boost::*;
pub use collector::*;
pub use docset::*;
pub use fusion::*;
pub use global_stats::*;
pub use phrase::*;
pub use prefix::*;
pub use proximity::ProximityConfig;
pub use range::*;
pub use regex::RegexQuery;
pub use reranker::*;
pub use scoring::*;
pub use term::*;
pub use traits::*;
pub use vector::*;
pub use wildcard::WildcardQuery;
pub use candidate_scoring::{
CandidateFeature, CandidateQuery, CandidateScores, CandidateScoringPlan, PassageFeatures,
RankingModel, ScoreScope, ScoredCandidate,
};