connections.py 1.2 KB

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