美文网首页NLP
知识图谱(2)——neo4j的用法

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

作者: 飘涯 | 来源:发表于2018-08-10 17:15 被阅读93次

基本命令用法

先了解各个命令的用法
创建一个节点
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

命令端导入数据


bin/neo4j-import --multiline-fields=true --bad-tolerance=1000000 --into graph.db --id-type string --nodes:person node.csv  --relationships:related relation_header.csv,relation.csv

大神关于cypher的使用文章:很详细
https://blog.csdn.net/amao1998/article/details/80999423

本机地址:192.168.43.75


相关文章

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

    基本命令用法 先了解各个命令的用法创建一个节点CREATE (ee:Person { name: "Emil", ...

  • 记一个 neo4j 与 py2neo 的 match 语句的坑

    最近项目中需要使用 neo4j 构建知识图谱。在师兄建议下使用了 py2neo ,而不是 neo4j 官方的api...

  • 初识Neo4j - 图数据库

    起个头:由于涉及知识图谱的项目需要,接触到Neo4j图形数据库,就想写个笔记,做个分享,督促自己。 知识图谱: 简...

  • py2neo V4 极简使用指南:Python操作Neo4j图数

    Neo4j的介绍可以参考这篇文章:《知识图谱技术与应用指南(转)》 其实,Python操作Neo4j,既可以用ne...

  • Neo4j的简单介绍

    在构建知识图谱的时候,Neo4j用来建立实体之间的关系非常方便,下面简单介绍一下它的使用方法: Neo4j数据库可...

  • Neo4j数据库Linux 单机安装笔记

    一、简介 最近这段时间一直在搞知识图谱的一个项目,简单搭建Neo4j数据库测试一下,小结一下搭建过程。知识图谱场景...

  • Neo4j安装教程

    最近再做企业与纳税人关联关系知识图谱,接触到图数据库,经过一番比较后,选择Neo4j图数据库作为知识图谱项目的数...

  • Neo4j图数据库学习总结

    1. 概述 本学习总结报告是对最近在本科课程设计电商知识图谱中使用到的图数据库Neo4j的总结,旨在对Neo4j的...

  • 知识图谱相关知识

    1.最全的知识图谱技术综述 2.浅谈知识图谱基础 3.为什么知识图谱终于火了? 4.知识图谱技术原理介绍 5. 6.

  • 知识图谱好文章整理

    转自:知识图谱交流圈 欢迎加知识图谱QQ交流群:829449428 1、社会化推荐在人人网的应用 2、金融知识图谱...

网友评论

    本文标题:知识图谱(2)——neo4j的用法

    本文链接:https://www.haomeiwen.com/subject/scqlbftx.html