from py2neo import Graph, Node, Relationship, Subgraph # 连接数据库 db = Graph("neo4j://127.0.0.1:7687", auth=("neo4j", "DsideaL4r5t6y7u")) # 修正版本查询代码 version = db.run("CALL dbms.components() YIELD versions UNWIND versions AS version RETURN version").evaluate() print(f"Neo4j 版本: {version}") # 清空数据 db.run("MATCH (n) DETACH DELETE n") # 分步删除约束和索引 try: # 删除约束 constraints = db.run("SHOW CONSTRAINTS YIELD name").data() for constr in constraints: db.run(f"DROP CONSTRAINT `{constr['name']}`") # 删除索引 indexes = db.run("SHOW INDEXES YIELD name, type WHERE type <> 'LOOKUP'").data() for idx in indexes: db.run(f"DROP INDEX `{idx['name']}`") except Exception as e: print(f"删除操作失败: {e}") # 创建节点 node_1 = Node("英雄", name="张无忌") node_2 = Node("英雄", name="杨逍", power=100) node_3 = Node("派别", name="明教") # 创建关系 relations = [ (node_1, '教主', node_2), (node_3, '统领', node_1), # 修正原代码可能的逻辑关系 (node_2, '师出', node_3) ] # 构建子图并提交 subgraph = Subgraph( nodes=[node_1, node_2, node_3], relationships=[Relationship(r[0], r[1], r[2]) for r in relations] ) db.create(subgraph)