NLP和知识图谱-neo4j安装和使用
安装和使用neo4j community server>
参考链接:https://www.cnblogs.com/ljhdo/p/5521577.html
安装
Java SE 14下载
下载安装 下载地址https://www.oracle.com/java/technologies/javase-downloads.html
双击安装文件安装
配置Java SE
Windows环境下需要配置环境变量
路径为java se安装目录下的bin目录
检测是否配置成功,在CMD窗口输入java -version
Neo4j下载
下载安装 使用版本3.5.17 下载地址https://neo4j.com/download-center/#community 点击community server下载对应系统的版本,下载后双击击安装
配置Neo4j
Windows环境下需要配置环境变量
路径为neo4j安装目录下的bin目录
Neosemantics插件下载(非必须)
下载 使用版本3.5.0.4 下载地址https://github.com/neo4j-labs/neosemantics/releases
配置Neosemantics
下载完成,将下载的jar文件复制到neo4j安装文件夹下的plugins文件夹下
启动neo4j
打开CMD窗口,输入 neo4j.bat console
然后在浏览器中输入 http://localhost:7474/
导入rdf文件
在顶栏命令行输入 CREATE INDEX ON :Resource(uri) 点击运行
再输入 CALL semantics.importRDF(“file:///C:/Users/cornor/Desktop/PTD.owl”,”Turtle”, { shortenUrls: true, typesToLabels: true, commitSize: 9000 ,handleVocabUris: “IGNORE”}) 点击运行,这里的owl文件是你的知识图谱文件,其他的格式的rdf图也支持,常用csv
如果运行失败,检查一下插件版本,是neo4j是3.x的还是4.x的,然后更改相应的插件版本
此时已经导入成功
导出csv
CALL apoc.export.csv.all(“res.csv”, {})
简单查询
##查询所有节点 MATCH (n) return n
查询具有某个属性值的节点
例如:查询操作系统版本为“2.6.29.1”的DTU设备
MATCH (s:dtu)-[p:操作系统版本
]-(o) where o.label =’2.6.29.1’ return s
多关系查询
例如:查询操作系统版本为“2.6.29.1”的DTU设备具有的漏洞
MATCH (s:dtu)-[p:操作系统版本
]->(o)<-[:操作系统版本
]-(l:loophole) where o.label =’2.6.29.1’ return l
多关系查询
例如:查询操作系统版本为“2.6.29.1”的DTU设备具有的漏洞的漏洞编号
MATCH (s:dtu)-[p:操作系统版本
]->(o)<-[:操作系统版本
]-(l:loophole)-[:漏洞编号
]-(res) where o.label =’2.6.29.1’ return res
多关系查询
例如:查询操作系统版本为“2.6.29.1”的DTU设备具有的漏洞的漏洞编号,同时查看才做系统和生产厂家
MATCH (s:dtu)-[p:操作系统版本
]->(o)<-[:操作系统版本
]-(l:loophole)-[:漏洞编号
]-(res) where o.label =’2.6.29.1’ return res
联合查询:
MATCH (m)-[r:操作系统版本
]-(s)-[]-(o)-[]-(l:loophole)-[p:漏洞编号
]-(res) where o.label=’PDZ810’
WITH m,r,s,o,l,p,res
MATCH (n)-[r2:生产厂家
]-(s)
return res,m,r,l,p,n
MATCH (m)-[r:操作系统版本
|设备的生产厂家
|设备类型
]-(s)-[]-(o)-[]-(l)-[p:漏洞编号
]-(res) where o.label=’PDZ810’ return res,m,r,l,p
MATCH (m)-[r:操作系统版本
|设备的生产厂家
|设备类型
]-(s)-[]-(o)-[]-(l)-[p:漏洞编号
|漏洞类别
|漏洞名称
]-(res) where o.label=’PDZ810’ return res,m,r,l,p,o
深度查询
多个关系的查询,深度1-13,例如:查询攻击
MATCH path=(n:dtu)-[*1..9]-(m:攻击维度
)
RETURN m
模糊查询
例如:查询任意和“2.6.29.1”有关的节点 MATCH (s)–(o) where o.label =’2.6.29.1’ return s
下一度查询
MATCH (p)–(s)–(o) where o.label =’2.6.29.1’ return p
相关文章
- 世界杯专题看板丨今晚8点开战,数据先睹为快!
- Crack App | 某合伙人登录参数 apisign 逻辑分析
- Crack App | 某都市魔幻 FM 请求参数 sign 的加密分析
- Crack App | 某赢+ 二手车 App 登录参数加密逻辑分析
- RocketMQ: 技术架构与启动流程
- 目前社区关于ServiceMesh的主要方向
- k8s的架构是怎么变成现在这个样子
- Envoy的lib库拓扑关系
- 转发“Istio共享代理新模式Ambient Mesh”
- 如何设计属于你自己的秒杀系统?
- 如何把Java代码玩出花?JVM Sandbox入门教程与原理浅谈
- 删错了文件怎么办,文件快速恢复
- ChatGPT 浏览器插件实现思路解析
- 存储系统中的算法:LSM 树设计原理
- 说透游戏中常用的两种随机算法
- 我用消息队列做了一款联机小游戏
- 用算法打败算法
- CRUD 一年多,我的破局思路
- 如何学习开源项目,我又总结了套路
- Union Find 并查集算法原理及应用