# -*- coding: utf-8 -*- # neo4j.py # @author: lyg # @date: 2025-04-24 # @version: 0.0.1 # @description: neo4j数据库操作 from py2neo import Graph, Node, Relationship import json class Neo4jHelper: def __init__(self): self.graph = Graph('http://192.168.1.14:7474', user='neo4j', password='123456') def create_page_node(self, page_info): """ 创建页面节点 """ # 创建节点 node = Node("Page", page_num=page_info.page_num, chapter_info=json.dumps(page_info.chapter_info, ensure_ascii=False, indent=2), text=page_info.text, entities=json.dumps(page_info.entities, ensure_ascii=False, indent=2)) self.graph.create(node) return node def create_entity_node(self, entity: str): """ 创建实体节点 """ node = self.graph.nodes.match("Entity", text=entity).first() if node: return node node = Node("Entity", text=entity) self.graph.create(node) return node def create_page_entity_relationship(self, page_node, entity_node): """ 创建页面和实体节点的关系 """ relationship = Relationship(page_node, "page_entity", entity_node) self.graph.create(relationship) return relationship def create_entity_relationship(self, entity_node1, entity_node2): """ 创建实体节点的关系 """ if entity_node1 == entity_node2: return relationship = Relationship(entity_node1, "entity_entity", entity_node2) if self.graph.exists(relationship): return self.graph.create(relationship) return relationship