qail_qdrant/lib.rs
1//! QAIL Vector Bridge for Qdrant.
2//!
3//! `qail-qdrant` provides Qdrant vector search, collection, upsert, delete, and
4//! payload filter operations with QAIL-compatible filter semantics.
5//!
6//! This crate does not use SQL. The SQL string/SQL bytes distinction applies to
7//! the PostgreSQL crates (`qail-core` and `qail-pg`), while this crate maps
8//! filter intent to Qdrant request models.
9//!
10//! # Example
11//! ```ignore
12//! use qail_core::prelude::*;
13//! use qail_qdrant::QdrantDriver;
14//!
15//! let driver = QdrantDriver::connect("localhost", 6334).await?;
16//!
17//! // Vector similarity search
18//! let results = driver.search("products", &embedding, 10, None).await?;
19//! ```
20
21pub mod decoder;
22pub mod driver;
23pub mod encoder;
24pub mod error;
25pub mod point;
26pub mod pool;
27pub mod protocol;
28pub mod transport;
29
30pub use decoder::ScrollResult;
31pub use driver::QdrantDriver;
32pub use encoder::FieldType;
33pub use error::{QdrantError, QdrantResult};
34pub use point::{
35 MultiVectorPoint, Payload, PayloadValue, Point, PointId, ScoredPoint, SparseVector, VectorData,
36};
37pub use pool::{PoolConfig, PooledConnection, QdrantPool};
38
39/// Re-export qail-core prelude for convenience.
40pub mod prelude {
41 pub use crate::{FieldType, PoolConfig, QdrantPool, ScrollResult};
42 pub use crate::{MultiVectorPoint, SparseVector, VectorData};
43 pub use crate::{
44 Payload, PayloadValue, Point, PointId, QdrantDriver, QdrantError, QdrantResult, ScoredPoint,
45 };
46 pub use qail_core::prelude::*;
47}
48
49/// Distance metrics for vector similarity.
50#[derive(Debug, Clone, Copy, PartialEq, Eq)]
51pub enum Distance {
52 /// Cosine similarity (normalised dot product).
53 Cosine,
54 /// Euclidean (L2) distance.
55 Euclidean,
56 /// Dot product similarity.
57 Dot,
58}