前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >知识图谱(2)——neo4j的用法

知识图谱(2)——neo4j的用法

作者头像
DC童生
发布2018-08-27 17:00:05
4850
发布2018-08-27 17:00:05
举报
文章被收录于专栏:机器学习原理机器学习原理

基本命令用法

先了解各个命令的用法 创建一个节点 CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 }) 创建一个节点,三个属性 MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee; 用于连接节点和关系 创造更多节点

代码语言:javascript
复制
MATCH (ee:Person) WHERE ee.name = "Emil"
CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),
(ir:Person { name: "Ian", from: "England", title: "author" }),
(rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }),
(ally:Person { name: "Allison", from: "California", hobby: "surfing" }),
(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),
(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),
(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),
(rvb)-[:KNOWS]->(ally)

创造关系,谁和谁认识,什么时候认识,什么年龄认识

代码语言:javascript
复制
(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir)

用match定义knows就是frieds 返回friends查看emil的朋友是谁

代码语言:javascript
复制
MATCH (ee:Person)-[:KNOWS]-(friends)
WHERE ee.name = "Emil" RETURN ee, friends

查看谁认识johan并且爱好是surfng

代码语言:javascript
复制
MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = "Johan" AND surfer.hobby = "surfing"
RETURN DISTINCT surfer

结果:

显示可视化查询方案

代码语言:javascript
复制
PROFILE MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = "Johan" AND surfer.hobby = "surfing"
RETURN DISTINCT surfer

直接从csv中加载文件

代码语言:javascript
复制
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/products.csv" AS row
CREATE (n:Product)
SET n = row,
  n.unitPrice = toFloat(row.unitPrice),
  n.unitsInStock = toInteger(row.unitsInStock), n.unitsOnOrder = toInteger(row.unitsOnOrder),
  n.reorderLevel = toInteger(row.reorderLevel), n.discontinued = (row.discontinued <> "0"

如果在本地,可以直接把文件放到import文件夹中直接输入

代码语言:javascript
复制
file:///xxx.csv

创建商品node把后面五行设置为属性

代码语言:javascript
复制
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/categories.csv" AS row
CREATE (n:Category)
SET n = row

加载商品的种类这个node 加入供应商node

  • 然后
代码语言:javascript
复制
CREATE INDEX ON :Product(productID)

创建各自种类的ID

  • 3创建关系
代码语言:javascript
复制
MATCH (p:Product),(c:Category)
WHERE p.categoryID = c.categoryID
CREATE (p)-[:PART_OF]->(c)
MATCH (p:Product),(s:Supplier)
WHERE p.supplierID = s.supplierID
CREATE (s)-[:SUPPLIES]->(p)

查看关系

代码语言:javascript
复制
MATCH (s:Supplier)-->(:Product)-->(c:Category)
RETURN s.companyName as Company, collect(distinct c.categoryName) as Categories

查看供应关系

代码语言:javascript
复制
MATCH p=()-[r:SUPPLIES]->() RETURN p LIMIT 25
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本命令用法
  • 直接从csv中加载文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档