Skip to main content

Module lance_vector_search

Module lance_vector_search 

Source
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:

  1. Use Cypher for graph traversal and filtering
  2. 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§

VectorSearch
Builder for vector similarity search operations
VectorSearchResult
Result of a vector search operation with metadata