知识图谱(二)---Neo4j

neo4j

  • Neo4j是一个世界领先的开源图形数据库,由 Java 编写。图形数据库也就意味着它的数据并非保存在表或集合中,而是保存为节点以及节点之间的关系。

  • neo4j的数据由下面几部分组成:

  • 节点、边、属性

  • 顶点(node)和边(relationship)和属性,无论是顶点还是边,都可以有任意多的属性。属性的存放类似于一个 HashMap,Key 为一个字符串,而 Value 必须是基本类型或者是基本类型数组

  • Neo4J中节点和边 都能够包含保存至的属性,此外:

  • 可以为节点设置零或多个标签

  • 每个关系都对应一种类型。

  • 关系总是从一个节点指向另一个节点。

neo4j简介

  • Neo4j 的特点和优势

  • SQL就像简单的查询语言语句Neo4j CQL

  • 它遵循属性图数据模型

  • 它通过使用Apache Lucence支持索引

  • 它支持UNIQUE约束

  • 它它包含一个用于执行CQL命令的UI:Neo4j数据浏览器

  • 它支持完整的ACID(原子性,一致性,隔离性和持久性)规则

  • 它采用原生图形库与本地GPE(图形处理引擎)

  • 它支持查询的数据导出到JSON和XLS格式

  • 它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问

  • 它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本

  • 它支持两种Java API:Cypher API和Native Java API来开发Java应用程序

Neo4j优点

  • 它很容易表示连接的数据

  • 检索/遍历/导航更多的连接数据是非常容易和快速的

  • 它非常容易地表示半结构化数据

  • Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习

  • 它使用简单而强大的数据模型

  • 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

Neo4j install

  • 官网直接下载安装包安装即可,链接:https://neo4j.com/download/。

  • 注意环境变量的更新

  • 访问地址:http://localhost:7474

  • 修改数据库的文件名称:${NEO4J_HOME}/conf 文件夹

  • Neo4j数据构建模块

  • 节点、属性、关系、标签、数据浏览器

  • 节点:是图的基本单位,它包含具有键值对的属性

  • 属性:用于描述节点和关系的键值对

  • 关系:是图形数据库的另一个国建模块,链接两个节点。

  • 导出的格式:CSV和json

  • CQL:是Neo4j的查询语言。具体的用法可以参考:https://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html

py2neo

  • Py2Neo 是用来对接 Neo4j 的 Python 库。

  • install


pip install py2neo

Node & relationship


from py2neo import Node, Relationship

a = Node('Person', name='Alice')

b = Node('Person', name='Bob')

r = Relationship(a, 'KNOWS', b)

print(a, b, r)

知识图谱(二)---Neo4j_第1张图片
示例

常见语法

[官网指南](https://neo4j.com/docs/getting-started/current/get-started-with-neo4j/](https://neo4j.com/docs/getting-started/current/get-started-with-neo4j/)

首先,我们为示例创建一些数据:

CREATE (matrix:Movie { title:"The Matrix",released:1997 })
CREATE (cloudAtlas:Movie { title:"Cloud Atlas",released:2012 })
CREATE (forrestGump:Movie { title:"Forrest Gump",released:1994 })
CREATE (keanu:Person { name:"Keanu Reeves", born:1964 })
CREATE (robert:Person { name:"Robert Zemeckis", born:1951 })
CREATE (tom:Person { name:"Tom Hanks", born:1956 })
CREATE (tom)-[:ACTED_IN { roles: ["Forrest"]}]->(forrestGump)
CREATE (tom)-[:ACTED_IN { roles: ['Zachry']}]->(cloudAtlas)
CREATE (robert)-[:DIRECTED]->(forrestGump)

这是结果图:


知识图谱(二)---Neo4j_第2张图片
image.png

你可能感兴趣的:(知识图谱(二)---Neo4j)