本模块提供了与Neo4j图数据库交互的核心功能,包括连接、查询和数据操作。
图数据库核心模块是整个系统的基础设施之一,负责处理所有与图数据库相关的底层操作。它提供了一组工具函数,用于执行常见的图数据库操作,如节点和关系的创建、查询和子图提取等。
提供了与Neo4j图数据库建立连接的功能,支持配置化连接参数。
创建具有给定标签和属性的新节点或获取现有节点,支持节点属性的更新。如果节点已存在(通过ID匹配),则更新节点属性。
在两个节点之间创建关系,支持定义关系类型和属性。
根据指定的起始节点、关系类型和深度,提取子图数据。返回的数据包括节点和关系的集合,可直接用于前端图形可视化。
执行自定义的Cypher查询,支持参数化查询,并处理查询结果为标准格式。可处理各种类型的查询结果,包括节点、关系和路径。
本模块主要基于py2neo和neo4j-python-driver,实现了对Neo4j图数据库的访问。主要技术点包括:
from app.core.graph import connect_graph, create_or_get_node, execute_cypher_query
# 创建节点
node_id = create_or_get_node('Person', name='张三', age=30)
# 执行查询
cypher = "MATCH (n:Person) WHERE n.name = $name RETURN n"
results = execute_cypher_query(cypher, {'name': '张三'})
# 获取子图
from app.core.graph import get_subgraph
graph_data = get_subgraph([node_id], ['KNOWS', 'WORKS_WITH'], max_depth=2)