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)