Expand description
§vectX Core
Core library for the vectX vector database.
This crate provides the fundamental data structures and algorithms:
Vector- Dense vector representation with SIMD operationsPoint- A vector with ID and optional payloadCollection- Container for points with indexingHnswIndex- HNSW approximate nearest neighbor indexBM25Index- Full-text search with BM25 ranking
§Example
use vectx_core::{Vector, Point, PointId, Collection, CollectionConfig, Distance};
// Create a collection
let config = CollectionConfig {
name: "test".to_string(),
vector_dim: 3,
distance: Distance::Cosine,
use_hnsw: true,
enable_bm25: false,
};
let collection = Collection::new(config);
// Insert a point
let vector = Vector::new(vec![1.0, 0.0, 0.0]);
let point = Point::new(PointId::String("p1".to_string()), vector, None);
collection.upsert(point).unwrap();
// Search
let query = Vector::new(vec![1.0, 0.0, 0.0]);
let results = collection.search(&query, 10, None);Re-exports§
pub use collection::Collection;pub use collection::CollectionConfig;pub use collection::Distance;pub use collection::PayloadIndexType;pub use vector::Vector;pub use error::Error;pub use error::Result;pub use point::Point;pub use point::PointId;pub use point::VectorData;pub use point::SparseVector;pub use hnsw::HnswIndex;pub use graph::Node;pub use graph::Edge;pub use graph::NodeId;pub use graph::EdgeId;pub use bm25::BM25Index;pub use filter::Filter;pub use filter::PayloadFilter;pub use filter::FilterCondition;pub use multivector::MultiVector;pub use multivector::MultiVectorConfig;pub use multivector::MultiVectorComparator;
Modules§
- background
- bm25
- collection
- error
- filter
- graph
- hnsw
- multivector
- MultiVector support for ColBERT-style late interaction retrieval
- point
- simd
- SIMD-optimized vector operations
- vector