connections.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. '''
  2. 图谱相关连接配置
  3. '''
  4. from flask import Flask
  5. from py2neo import Graph
  6. from configs.nacos_config import configs
  7. from py2neo import Node
  8. app = Flask(__name__)
  9. neo4j_url = configs['neo4j_url']
  10. username = configs['neo4j_username']
  11. password = configs['neo4j_password']
  12. connect_graph = Graph(neo4j_url, auth=(username, password))
  13. # 创建或获取节点
  14. def create_or_get_node(label,**properties):
  15. node = connect_graph.nodes.match(label,**properties).first()
  16. if node is None:
  17. node = Node(label,**properties)
  18. connect_graph.create(node)
  19. return node
  20. # 查询是否存在节点
  21. def get_node(label,**properties):
  22. node = connect_graph.nodes.match(label,**properties).first()
  23. # 如果没有找到匹配的节点,node 将会是 None
  24. return node
  25. # 查询是否存在关系
  26. def relationship_exists(start_node, rel_type, end_node, **properties):
  27. matcher = connect_graph.match(nodes=[start_node, end_node], r_type=rel_type)
  28. # 如果需要匹配关系的属性
  29. if properties:
  30. matcher = matcher.where(**properties)
  31. result = matcher.first()
  32. return result is not None