Skip to main content

Crate lance_graph

Crate lance_graph 

Source
Expand description

Lance Graph Query Engine

This crate provides graph query capabilities for Lance datasets using Cypher syntax. It interprets Lance datasets as property graphs and translates Cypher queries into DataFusion SQL queries for execution.

§Features

  • Cypher query parsing and AST representation
  • Graph pattern matching on columnar data
  • Property graph interpretation of Lance datasets
  • Translation to optimized SQL via DataFusion
  • Support for nodes, relationships, and properties

§Example

use lance_graph::{CypherQuery, GraphConfig, Result};

let config = GraphConfig::builder()
    .with_node_label("Person", "person_id")
    .with_relationship("KNOWS", "src_person_id", "dst_person_id")
    .build()?;

let query = CypherQuery::new("MATCH (p:Person) WHERE p.age > 30 RETURN p.name")?
    .with_config(config);

// Execute against a dataset (would need actual dataset integration)
// let results = query.execute(&dataset).await?;

Re-exports§

pub use config::GraphConfig;
pub use config::NodeMapping;
pub use config::RelationshipMapping;
pub use error::GraphError;
pub use error::Result;
pub use lance_vector_search::VectorSearch;
pub use namespace::DirNamespace;
pub use query::CypherQuery;
pub use query::ExecutionStrategy;

Modules§

ast
Abstract Syntax Tree for Cypher queries
case_insensitive
Case-insensitive string utilities
config
Graph configuration for mapping Lance datasets to property graphs
datafusion_planner
DataFusion-based physical planner for graph queries
error
Error types for the Lance graph query engine
lance_native_planner
Lance Native physical planner (placeholder)
lance_vector_search
Lance Vector Search API for lance-graph
logical_plan
Logical planning for graph queries
namespace
parser
Cypher query parser
query
High-level Cypher query interface for Lance datasets
semantic
Semantic analysis for graph queries
simple_executor
Simple single-table query executor with limited Cypher feature support
source_catalog
Context-free source catalog for DataFusion logical planning.

Constants§

MAX_VARIABLE_LENGTH_HOPS
Maximum allowed hops for variable-length relationship expansion (e.g., *1..N)