安装和使用neo4j community server>
参考链接:https://www.cnblogs.com/ljhdo/p/5521577.html
Windows环境下需要配置环境变量
路径为java se安装目录下的bin目录
检测是否配置成功,在CMD窗口输入java -version
下载安装 使用版本3.5.17 下载地址https://neo4j.com/download-center/#community 点击community server下载对应系统的版本,下载后双击击安装
Windows环境下需要配置环境变量
路径为neo4j安装目录下的bin目录
下载 使用版本3.5.0.4 下载地址https://github.com/neo4j-labs/neosemantics/releases
下载完成,将下载的jar文件复制到neo4j安装文件夹下的plugins文件夹下
打开CMD窗口,输入 neo4j.bat console
然后在浏览器中输入 http://localhost:7474/
在顶栏命令行输入 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的,然后更改相应的插件版本
此时已经导入成功
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