Expand description
Lance Vector Search API for lance-graph
This module provides a flexible API for vector similarity search that can work with:
- In-memory RecordBatches (brute-force search)
- Lance datasets (ANN search with indices)
This is distinct from the UDF-based vector search (vector_distance(), vector_similarity())
which is integrated into Cypher queries. This API provides explicit two-step search for
GraphRAG workflows where you want to:
- Use Cypher for graph traversal and filtering
- Use VectorSearch for similarity ranking with Lance ANN indices
§Example
ⓘ
use lance_graph::lance_vector_search::VectorSearch;
use lance_graph::ast::DistanceMetric;
// Step 1: Run Cypher query to get candidates
let candidates = query.execute(datasets, None).await?;
// Step 2: Rerank by vector similarity
let results = VectorSearch::new("embedding")
.query_vector(vec![0.1, 0.2, 0.3])
.metric(DistanceMetric::Cosine)
.top_k(10)
.search(&candidates)
.await?;Structs§
- Vector
Search - Builder for vector similarity search operations
- Vector
Search Result - Result of a vector search operation with metadata