专栏首页机器学习原理知识图谱(2)——neo4j的用法

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

基本命令用法

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

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)

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

(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir)

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

MATCH (ee:Person)-[:KNOWS]-(friends)
WHERE ee.name = "Emil" RETURN ee, friends

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

MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = "Johan" AND surfer.hobby = "surfing"
RETURN DISTINCT surfer

结果:

显示可视化查询方案

PROFILE MATCH (js:Person)-[:KNOWS]-()-[:KNOWS]-(surfer)
WHERE js.name = "Johan" AND surfer.hobby = "surfing"
RETURN DISTINCT surfer

直接从csv中加载文件

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文件夹中直接输入

file:///xxx.csv

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

LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/categories.csv" AS row
CREATE (n:Category)
SET n = row

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

  • 然后
CREATE INDEX ON :Product(productID)

创建各自种类的ID

  • 3创建关系
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)

查看关系

MATCH (s:Supplier)-->(:Product)-->(c:Category)
RETURN s.companyName as Company, collect(distinct c.categoryName) as Categories

查看供应关系

MATCH p=()-[r:SUPPLIES]->() RETURN p LIMIT 25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度学习(5)——RBF算法简介

    DC童生
  • 解决Pynlpir分词License过期问题

    在Anconda环境下使用pip install pynlpir安装的Pynlpir

    DC童生
  • mongodb的基本使用以及pymong的用法

    MongoDB 是由 C++ 语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档...

    DC童生
  • 小游戏能互相直跳,开源一个交叉营销组件

    jocross.js 是微信小游戏上的一个交叉营销组件,找作者收录小游戏后,接入代码即可展示相关游戏入口(其他游戏能展示自己游戏入口),目前展示逻辑为随机展示三...

    花叔
  • Python编程思想(28):限制类的动态特性(__slots__属性)

    李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客...

    蒙娜丽宁
  • python 面向对象之类的继承

    AttributeError: 'WoMan' object has no attribute 'go_to_work'

    py3study
  • 类的组合

    py3study
  • 使用JS异步回调解决pjax加载问题

    使用pjax会导致部分js插件无法加载,最后我选择异步加载解决问题。 你可能会问异步就够了为什么还有个callback是干啥的,不急你先看看代码。

    乔千
  • eosjs转账代码

    本文介绍使用V20版本的eosjs实现代币转账的思路,并给出eosjs转账的实现代码。

    用户1408045
  • 拯救小目标检测!Tiny Person数据集和SM尺度匹配小目标检测新方法

    Amusi 在2019年整理并分享了很多目标检测相关的论文,其中个人觉得较为亮眼或者说热门的两大阵营就是:Anchor-Free和基于NAS的目标检测。

    Amusi

扫码关注云+社区

领取腾讯云代金券