wangxq b277bbc931 已经修改config,自适应生成和开发环境,获取相应的配置参数 1 mēnesi atpakaļ
..
README.md ff40167dac The first initialization of the project 2 mēneši atpakaļ
__init__.py ff40167dac The first initialization of the project 2 mēneši atpakaļ
graph_operations.py b277bbc931 已经修改config,自适应生成和开发环境,获取相应的配置参数 1 mēnesi atpakaļ

README.md

图数据库核心功能模块

本模块提供了与Neo4j图数据库交互的核心功能,包括连接、查询和数据操作。

功能概述

图数据库核心模块是整个系统的基础设施之一,负责处理所有与图数据库相关的底层操作。它提供了一组工具函数,用于执行常见的图数据库操作,如节点和关系的创建、查询和子图提取等。

主要功能

1. 数据库连接 (connect_graph)

提供了与Neo4j图数据库建立连接的功能,支持配置化连接参数。

2. 节点操作 (create_or_get_node)

创建具有给定标签和属性的新节点或获取现有节点,支持节点属性的更新。如果节点已存在(通过ID匹配),则更新节点属性。

3. 关系操作 (create_relationship)

在两个节点之间创建关系,支持定义关系类型和属性。

4. 子图提取 (get_subgraph)

根据指定的起始节点、关系类型和深度,提取子图数据。返回的数据包括节点和关系的集合,可直接用于前端图形可视化。

5. Cypher查询执行 (execute_cypher_query)

执行自定义的Cypher查询,支持参数化查询,并处理查询结果为标准格式。可处理各种类型的查询结果,包括节点、关系和路径。

技术实现

本模块主要基于py2neo和neo4j-python-driver,实现了对Neo4j图数据库的访问。主要技术点包括:

  • 数据库连接与会话管理
  • Cypher查询构建与执行
  • 查询结果序列化与转换
  • 异常处理与日志记录

使用方法

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)

依赖项

  • neo4j: 图数据库核心驱动
  • Config: 系统配置模块,提供数据库连接参数