news 2026/4/23 14:39:17

Neo4j查询语句写法举例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:47:53

6、游戏开发中的资源与场景管理及跨设备兼容性处理

游戏开发中的资源与场景管理及跨设备兼容性处理 1. 资源管理 在游戏开发中,资源管理是一项重要任务。以下代码展示了资源管理类中对声音和文件资源的初始化: if (!soundAssets) {soundAssets = [[SoundManager alloc] init]; } if (!fileAssets) {fileAssets = [[FileMan…

作者头像 李华
网站建设 2026/4/22 23:16:12

React 19让你的经验失效了?深入剖析架构巨变背后的真相

上周五晚上10点,我盯着屏幕上的代码陷入了沉思。这是一个再普通不过的用户信息展示组件,props没变,state没变,连useEffect的依赖数组都是空的。但它就是莫名其妙地重新渲染了,而且渲染的时机完全不符合我过去5年积累的React经验。我打开React DevTools,检查了组件树,检查了Prof…

作者头像 李华
网站建设 2026/4/23 13:01:40

Element Plus Notification组件HTML渲染问题的深度诊断与高效修复方案

Element Plus Notification组件HTML渲染问题的深度诊断与高效修复方案 【免费下载链接】element-plus element-plus/element-plus: Element Plus 是一个基于 Vue 3 的组件库&#xff0c;提供了丰富且易于使用的 UI 组件&#xff0c;用于快速搭建企业级桌面和移动端的前端应用。…

作者头像 李华
网站建设 2026/4/16 23:30:01

申请发明专利的申请被驳回了怎么办

专利申请被驳回了怎么办&#xff1f;专利申请能转让吗&#xff0c;这个2个是最近问我最多的。专利申请大家都已经明白了吧&#xff0c;那么就有这一点大家还是不太清楚&#xff0c;遇到这样的情况下&#xff0c;大家都不要慌&#xff0c;我们要先去找到驳回的理由。一般专利申请…

作者头像 李华
网站建设 2026/4/23 3:38:05

PoeCharm终极指南:精通流放之路中文构建工具的高效使用技巧

PoeCharm作为Path of Building的官方中文版本&#xff0c;是《流放之路》玩家构建优化与游戏体验提升的必备神器。这款免费开源软件提供完整的中文界面支持&#xff0c;让国内玩家能够轻松规划角色天赋、装备搭配和技能组合&#xff0c;彻底告别语言障碍带来的构建困扰。 【免费…

作者头像 李华
网站建设 2026/4/23 12:48:03

XGW-9000 网关硬件设计信号完整性仿真设计

✅ 信号完整性仿真设计&#xff08;Signal Integrity Simulation&#xff09; &#x1f4ca; 一、仿真目标与标准 1.1 仿真目标 确保以下关键信号在高速传输中满足电气性能要求&#xff1a; DDR4 内存接口&#xff08;2400MHz&#xff0c;4通道&#xff09;千兆以太网接口&…

作者头像 李华