mod builders;
mod cross_modal;
mod execution;
mod filters;
mod helpers;
mod types;
#[cfg(test)]
mod tests;
pub use builders::TextSearchBuilder;
pub use builders::{
CrossModalWeights, GraphPatternDsl, GraphQueryBuilder, GraphStartPoint, HybridQueryBuilder,
JoinPhase, JoinStep, KvQueryBuilder, NodePatternDsl, QueryWeights, RefQueryBuilder,
ScanQueryBuilder, SortOrder, TableQueryBuilder, ThreeWayJoinBuilder, TraversalDirection,
TraversalStep, VectorQueryBuilder,
};
pub use filters::{Filter, FilterAcceptor, FilterOp, FilterValue, WhereClause};
pub use helpers::{apply_filters, cosine_similarity};
pub use types::{MatchComponents, QueryResult, ScoredMatch};
use super::entity::{EntityId, RefType};
pub struct Q;
impl Q {
pub fn similar_to(vector: &[f32], k: usize) -> VectorQueryBuilder {
VectorQueryBuilder::new(vector.to_vec(), k)
}
pub fn from_node(label: impl Into<String>) -> GraphQueryBuilder {
GraphQueryBuilder::from_node(label)
}
pub fn from_id(id: EntityId) -> GraphQueryBuilder {
GraphQueryBuilder::from_id(id)
}
pub fn table(name: impl Into<String>) -> TableQueryBuilder {
TableQueryBuilder::new(name)
}
pub fn collection(name: impl Into<String>) -> TableQueryBuilder {
TableQueryBuilder::new(name)
}
pub fn all_in(collection: impl Into<String>) -> ScanQueryBuilder {
ScanQueryBuilder::new(collection)
}
pub fn refs_from(id: EntityId, ref_type: RefType) -> RefQueryBuilder {
RefQueryBuilder::new(id, ref_type)
}
pub fn text_search(query: impl Into<String>) -> TextSearchBuilder {
TextSearchBuilder::new(query)
}
pub fn document(collection: impl Into<String>) -> TableQueryBuilder {
TableQueryBuilder::new(collection)
}
pub fn kv(collection: impl Into<String>) -> KvQueryBuilder {
KvQueryBuilder::new(collection)
}
pub fn hybrid() -> HybridQueryBuilder {
HybridQueryBuilder::new()
}
pub fn cross_modal() -> ThreeWayJoinBuilder {
ThreeWayJoinBuilder::new()
}
}