Skip to main content

Crate lumosai_vector_weaviate

Crate lumosai_vector_weaviate 

Source
Expand description

§Lumos Vector Weaviate

Weaviate vector database implementation for the lumos-vector-core architecture.

This crate provides a high-performance Weaviate backend for vector storage, implementing the unified VectorStorage trait from lumos-vector-core.

§Features

  • Semantic Search: Leverages Weaviate’s semantic search capabilities
  • Schema Management: Automatic schema creation and management
  • Rich Filtering: Advanced metadata filtering with GraphQL
  • Batch Operations: Efficient bulk insert and update operations
  • Multi-tenancy: Support for Weaviate’s multi-tenant features

§Example

use lumos_vector_weaviate::WeaviateVectorStorage;
use lumos_vector_core::prelude::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create Weaviate storage
    let storage = WeaviateVectorStorage::new("http://localhost:8080").await?;
     
    // Create an index (class in Weaviate)
    let config = IndexConfig::new("Documents", 384)
        .with_metric(SimilarityMetric::Cosine);
    storage.create_index(config).await?;
     
    // Insert documents
    let docs = vec![
        Document::new("doc1", "Hello world")
            .with_embedding(vec![0.1; 384])
            .with_metadata("type", "greeting"),
    ];
    storage.upsert_documents("Documents", docs).await?;
     
    // Search
    let request = SearchRequest::new("Documents", vec![0.1; 384])
        .with_top_k(5);
    let results = storage.search(request).await?;
     
    Ok(())
}

Re-exports§

pub use storage::WeaviateVectorStorage;
pub use config::WeaviateConfig;
pub use error::WeaviateError;

Modules§

config
Weaviate configuration
error
Weaviate-specific error types
filter
Weaviate filter conversion utilities
schema
Weaviate schema management
similarity
Default similarity calculator implementations
storage
Weaviate vector storage implementation

Structs§

BackendInfo
Backend information
CacheConfig
缓存配置
CacheEntry
缓存条目
CacheStats
缓存统计信息
ConnectionPool
连接池
ConnectionPoolConfig
连接池配置
ConnectionPoolStats
连接池统计信息
Document
Document representation with embedding support
IndexConfig
Index configuration
IndexCreateConfig
Index creation configuration
IndexInfo
Index statistics and information
IndexOptions
Index-specific options
LRUCache
LRU缓存
PerformanceMetrics
性能指标
PerformanceMonitor
性能监控器
PooledConnection
池化连接
SearchConfig
Search configuration
SearchRequest
Search request for querying vectors
SearchResponse
Search response
SearchResult
Search result item
StorageConfigBuilder
Builder for creating storage configurations
VectorSystemConfig
Complete vector storage system configuration

Enums§

EmbeddingConfig
Embedding model configuration
FilterCondition
Filter conditions for querying vectors
MetadataValue
Metadata value that can hold various types
SearchQuery
Search query can be either a vector or text
SimilarityMetric
Similarity metrics for vector comparison
SqliteSynchronous
SQLite synchronous mode
StorageConfig
Storage backend configuration
VectorError
Comprehensive error type for vector storage operations

Traits§

Embeddable
Trait for documents that can be embedded
EmbeddingModel
Trait for embedding models
FilterEvaluator
Trait for filter evaluation
SimilarityCalculator
Trait for vector similarity calculation
VectorStorage
Core trait for vector storage backends

Functions§

create_weaviate_storage
Create a new Weaviate vector storage instance
create_weaviate_storage_with_config
Create a new Weaviate vector storage instance with configuration

Type Aliases§

DocumentId
Document ID type
Metadata
Metadata type for storing arbitrary key-value pairs
Result
Result type alias for vector operations
Vector
Vector type alias for f32 vectors