当前位置: 首页 > news >正文

Neo4j查询语句写法举例

Neo4j查询语句写法举例

# -*- coding: utf-8 -*-frompy2neoimportGraph,Node,Relationship,NodeMatcher#版本说明:Py2neo v4classNeo4j_Handle():graph=Nonematcher=Nonedef__init__(self):print("Neo4j Init ...")defconnectDB(self):self.graph=Graph("bolt: // localhost:7687",username="neo4j",password="zhangzl")self.matcher=NodeMatcher(self.graph)#实体查询,用于命名实体识别:品牌+车系+车型defmatchEntityItem(self,value):answer=self.graph.run("MATCH (entity1) WHERE entity1.name = \""+value+"\" RETURN entity1").data()returnanswer#实体查询defgetEntityRelationbyEntity(self,value):#查询实体:不考虑实体类型,只考虑关系方向answer=self.graph.run("MATCH (entity1) - [rel] -> (entity2) WHERE entity1.name = \""+value+"\" RETURN rel,entity2").data()if(len(answer)==0):#查询实体:不考虑关系方向answer=self.graph.run("MATCH (entity1) - [rel] - (entity2) WHERE entity1.name = \""+value+" \" RETURN rel,entity2").data()print(answer)returnanswer#关系查询:实体1deffindRelationByEntity1(self,entity1):#基于品牌查询answer=self.graph.run("MATCH (n1:Bank {name:\""+entity1+"\"})- [rel] -> (n2) RETURN n1,rel,n2").data()#基于车系查询,注意此处额外的空格if(len(answer)==0):answer=self.graph.run("MATCH (n1:Serise {name:\""+entity1+" \"})- [rel] - (n2) RETURN n1,rel,n2").data()returnanswer#关系查询:实体2deffindRelationByEntity2(self,entity1):#基于品牌answer=self.graph.run("MATCH (n1)<- [rel] - (n2:Bank {name:\""+entity1+"\"}) RETURN n1,rel,n2").data()if(len(answer)==0):#基于车系answer=self.graph.run("MATCH (n1) - [rel] - (n2:Serise {name:\""+entity1+" \"}) RETURN n1,rel,n2").data()returnanswer#关系查询:实体1+关系deffindOtherEntities(self,entity,relation):answer=self.graph.run("MATCH (n1:Bank {name:\""+entity+"\"})- [rel:Subtype {type:\""+relation+"\"}] -> (n2) RETURN n1,rel,n2").data()returnanswer#关系查询:关系+实体2deffindOtherEntities2(self,entity,relation):print("findOtherEntities2==")print(entity,relation)answer=self.graph.run("MATCH (n1)- [rel:RELATION {type:\""+relation+"\"}] -> (n2:Bank {name:\""+entity+"\"}) RETURN n1,rel,n2").data()if(len(answer)==0):answer=self.graph.run("MATCH (n1)- [rel:RELATION {type:\""+relation+"\"}] -> (n2:Serise {name:\""+entity+" \"}) RETURN n1,rel,n2").data()returnanswer#关系查询:实体1+实体2(注意Entity2的空格)deffindRelationByEntities(self,entity1,entity2):#品牌 + 品牌answer=self.graph.run("MATCH (n1:Bank {name:\""+entity1+"\"})- [rel] -> (n2:Bank{name:\""+entity2+" \"}) RETURN n1,rel,n2").data()if(len(answer)==0):#品牌 + 系列answer=self.graph.run("MATCH (n1:Bank {name:\""+entity1+"\"})- [rel] -> (n2:Serise{name:\""+entity2+" \"}) RETURN n1,rel,n2").data()if(len(answer)==0):#系列 + 品牌answer=self.graph.run("MATCH (n1:Serise {name:\""+entity1+"\"})- [rel] -> (n2:Bank{name:\""+entity2+" \"}) RETURN n1,rel,n2").data()if(len(answer)==0):#系列 + 系列answer=self.graph.run("MATCH (n1:Serise {name:\""+entity1+"\"})- [rel] -> (n2:Serise{name:\""+entity2+" \"}) RETURN n1,rel,n2").data()returnanswer#查询数据库中是否有对应的实体-关系匹配softdeffindEntityRelation(self,entity1,relation,entity2):answer=self.graph.run("MATCH (n1:Bank {name:\""+entity1+"\"})- [rel:subbank {type:\""+relation+"\"}] -> (n2:Bank{name:\""+entity2+"\"}) RETURN n1,rel,n2").data()if(len(answer)==0):answer=self.graph.run("MATCH (n1:Bank {name:\""+entity1+"\"})- [rel:subbank {type:\""+relation+"\"}] -> (n2:Serise{name:\""+entity2+"\"}) RETURN n1,rel,n2").data()if(len(answer)==0):answer=self.graph.run("MATCH (n1:Serise {name:\""+entity1+"\"})- [rel:subbank {type:\""+relation+"\"}] -> (n2:Bank{name:\""+entity2+"\"}) RETURN n1,rel,n2").data()if(len(answer)==0):answer=self.graph.run("MATCH (n1:Serise {name:\""+entity1+"\"})- [rel:subbank {type:\""+relation+"\"}] -> (n2:Serise{name:\""+entity2+"\"}) RETURN n1,rel,n2").data()returnanswer
http://www.cnnetsun.cn/news/83366.html

相关文章:

  • 12、游戏开发:用户界面与人工智能实现
  • 申请专利带来的好处
  • BilibiliSponsorBlock智能配置:一键告别B站广告干扰
  • 单细胞T细胞分析新突破:高效追踪免疫应答全流程
  • PDF补丁丁终极使用指南:PDFPatcher快速精通手册
  • 35、GnomeVFS 文件传输、类型识别与 URI 操作全解析
  • mysql修改密码
  • Git commit规范与TensorFlow项目协作开发的最佳实践
  • CVE-2025-55182和CVE-2025-66478漏洞(Next.js)
  • CRMEB-PHP商品采集模块开发指南:API对接与批量上架实现
  • 基于django微信小程序的校园食堂点餐订餐系统
  • LangFlow工作流引擎在多模态大模型中的调度作用
  • 32、开源系统在不同领域的高效应用案例剖析
  • VeraCrypt终极指南:5分钟掌握磁盘加密完整流程
  • ENSP抓包分析GPT-SoVITS API通信数据格式
  • 37、Solaris 文件与文件 I/O 深入解析
  • 45、内核可调参数、开关和限制及虚拟地址映射详解
  • AI市场舆情分析与量化风险:超越预测的2025年AI决策之道
  • Ivy统一AI框架:5步实现多框架代码无缝转换
  • Socket.IO-Client-Swift完整开发指南:从零构建实时iOS应用
  • LangFlow工作流导出为API接口的完整流程
  • 25、Linux 系统通信指南:网络连接、传真与调制解调器使用
  • 22、Linux系统中的提醒工具使用指南
  • 加密已死?不,它正在重生:为什么加密仍然是数据安全的终极堡垒
  • 【SS拓扑】基于移相控制的磁耦合谐振无线电能传输系统仿真附Simulink仿真
  • 26、负载均衡与高可用集群搭建指南
  • 告别单一工具化思维:如何构建覆盖全生命周期的零工管理体系?
  • 27、高可用性集群中ldirectord的配置与使用指南
  • 28、高可用集群与网络文件系统详解
  • 32、Mon与SNMP:网络监控的完美组合