[bigdata-082] 图数据库neo4j安装运行界面文档python3开发示例
来源:互联网 发布:剑客抢购软件 编辑:程序博客网 时间:2024/05/22 05:10
1. 官网
https://neo4j.com/
源码地址 https://github.com/neo4j
2. 下载
wget https://neo4j.com/artifact.php?name=neo4j-community-3.2.0-unix.tar.gz
3. 安装
tar xvf neo4j-community-3.2.0-unix.tar.gz
4. 以console方式运行
./bin/neo4j console
5.或者 以服务方式运行
./bin/neo4j server
注意:4和5任选一个。
6. 在浏览器登录http://localhost:7474
需要输入用户名和密码,默认值都是neo4j
更改新密码为123456
7. 关于服务
You are connected as user neo4j
to the server bolt://localhost:7687
Connection credentials are stored in your web browser.
8. neo4j核心
8.1 定义
nodes: 图数据记录
relationships: 连接nodes的边,也叫关系
properties: 属性值
8.2 图数据库
8.2.1 一个节点,就是一个最小的图数据库
8.2.2 对节点加个标签label,比如"persion"标签。标签也可以有属性值。一个节点可以有0各或者多个标签。
8.2.3 连接数据--给两个节点加上一个标签表示连接关系。关系是有向的,关系是有类型的。
9 开发手册
https://neo4j.com/docs/developer-manual/3.2/
这个手册有些连接打不开,奇怪。
10. neo4j的python3开发
10.1 驱动地址
https://neo4j.com/docs/developer-manual/current/drivers/get-started/
10.2 安装python3驱动
pip3 install neo4j-driver
10.3 启动服务
./bin/neo4j start
Active database: graph.db
Directories in use:
home: /home/brian/usr/neo4j/neo4j-community-3.2.0
config: /home/brian/usr/neo4j/neo4j-community-3.2.0/conf
logs: /home/brian/usr/neo4j/neo4j-community-3.2.0/logs
plugins: /home/brian/usr/neo4j/neo4j-community-3.2.0/plugins
import: /home/brian/usr/neo4j/neo4j-community-3.2.0/import
data: /home/brian/usr/neo4j/neo4j-community-3.2.0/data
certificates: /home/brian/usr/neo4j/neo4j-community-3.2.0/certificates
run: /home/brian/usr/neo4j/neo4j-community-3.2.0/run
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid 8325). It is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /home/brian/usr/neo4j/neo4j-community-3.2.0/logs/neo4j.log for current status.
注意启动信息:
启动后,活动的neo4j的库是graph.db,它的数据存储在neo4j的目录下的data/databases/graph.db这个目录。
在浏览器输入http://localhost:7474/,可以看到图形界面。
You are connected as user neo4j
to the server bolt://localhost:7687
Connection credentials are stored in your web browser.
10.4 用python3实现第一个例子
----------------------------
#!/usr/bin/env python3
#!-*- coding:utf-8 -*-
from neo4j.v1 import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "123456"))
def print_friends_of(name):
with driver.session() as session:
with session.begin_transaction() as tx:
for record in tx.run("MATCH (a:Person)-[:KNOWS]->(f) "
"WHERE a.name = {name} "
"RETURN f.name", name=name):
print(record["f.name"])
print_friends_of("Alice")
----------------------------
10.5 driver object
一个driver object管理一个neo4j的一个实例,包括这个实例下的所有数据库,包括url,帐号密码,配置。它管理一个连接池,由管理Session实例。
---------------------------
from neo4j.v1 import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "123456"))
---------------------------
10.6 cypher sessions
一个session是一个逻辑上下文,它是neo4j的事务单元的运行环境。
10.7 type system类型系统
这里包括Node, Relationship, Path。
11. Cypher语法
11.1 创建一个只有一节点的图,其实也就是数据
CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })
创建这个节点后,数据就写入到文件持久化存储了,neo4j关闭重启节点都会在。
11.2 从图里查找一个节点
MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;
MATCH (ee {name: "Emil"}) RETURN tom
11.3 创建更多的节点
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)
注意,节点可以被重复加入,所有属性相同的节点可以存在。
11.4 寻找一个演员演出过的所有电影
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
11.5 删除全部节点和关系
MATCH (n) DETACH DELETE n
12. 进一步细节
两个节点的关系,也叫做pattern。比如说,一个人住在一个城市 a persion LIVES_IN a city。一个城市是一个国家的一部分 a city is PART_OF a country.
简单的pattern可以再次组装成复杂模式,比如 (:person) -[:LIVES_IN]-> (:city) -[:PART_OF]-> (:Country)
12.1 node的例子
()
(matrix)
(:Movie)
(matrix:Movie)
(matrix:Movie {title: "The Matrix"})
(matrix:Movie {title: "The Matrix", released: 1997})
12.2 relationship的例子
-->
-[role]->
-[:ACTED_IN]->
-[role:ACTED_IN]->
-[role:ACTED_IN {roles: ["Neo"]}]->
"--"无向关系
"-->"和"<--"表示有向关系
[..]用于增加细节,包括变量名,属性,and/or信息。
12.3 一个复杂的组合pattern
(keanu:Person:Actor {name: "Keanu Reeves"} )
-[role:ACTED_IN {roles: ["Neo"] } ]->
(matrix:Movie {title: "The Matrix"} )
变量keanu表示一个person也就是一个actor,它的属性name是"Keanu Reeves"。
变量matrix表示一个move,它的属性title是"The Matrix"
变量keanu和matrix之间有一个有向的label,keanu对matrix有ACTED_IN关系,这个relationship的变量名是role,这个relationship的属性是reoles是"neo"。
12.4 pattern可以表示为变量,比如
acted_in = (:Person)-[:ACTED_IN]->(:Movie)
13. cypher
13.1 查找一个人的朋友的朋友关系
MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof)
RETURN john.name, fof.name
13.2 这又是一个复杂查询关系
MATCH (user)-[:friend]->(follower)
WHERE user.name IN ['Joe', 'John', 'Sara', 'Maria', 'Steve'] AND follower.name =~ 'S.*'
RETURN user.name, follower.name
https://neo4j.com/
源码地址 https://github.com/neo4j
2. 下载
wget https://neo4j.com/artifact.php?name=neo4j-community-3.2.0-unix.tar.gz
3. 安装
tar xvf neo4j-community-3.2.0-unix.tar.gz
4. 以console方式运行
./bin/neo4j console
5.或者 以服务方式运行
./bin/neo4j server
注意:4和5任选一个。
6. 在浏览器登录http://localhost:7474
需要输入用户名和密码,默认值都是neo4j
更改新密码为123456
7. 关于服务
You are connected as user neo4j
to the server bolt://localhost:7687
Connection credentials are stored in your web browser.
8. neo4j核心
8.1 定义
nodes: 图数据记录
relationships: 连接nodes的边,也叫关系
properties: 属性值
8.2 图数据库
8.2.1 一个节点,就是一个最小的图数据库
8.2.2 对节点加个标签label,比如"persion"标签。标签也可以有属性值。一个节点可以有0各或者多个标签。
8.2.3 连接数据--给两个节点加上一个标签表示连接关系。关系是有向的,关系是有类型的。
9 开发手册
https://neo4j.com/docs/developer-manual/3.2/
这个手册有些连接打不开,奇怪。
10. neo4j的python3开发
10.1 驱动地址
https://neo4j.com/docs/developer-manual/current/drivers/get-started/
10.2 安装python3驱动
pip3 install neo4j-driver
10.3 启动服务
./bin/neo4j start
Active database: graph.db
Directories in use:
home: /home/brian/usr/neo4j/neo4j-community-3.2.0
config: /home/brian/usr/neo4j/neo4j-community-3.2.0/conf
logs: /home/brian/usr/neo4j/neo4j-community-3.2.0/logs
plugins: /home/brian/usr/neo4j/neo4j-community-3.2.0/plugins
import: /home/brian/usr/neo4j/neo4j-community-3.2.0/import
data: /home/brian/usr/neo4j/neo4j-community-3.2.0/data
certificates: /home/brian/usr/neo4j/neo4j-community-3.2.0/certificates
run: /home/brian/usr/neo4j/neo4j-community-3.2.0/run
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid 8325). It is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /home/brian/usr/neo4j/neo4j-community-3.2.0/logs/neo4j.log for current status.
注意启动信息:
启动后,活动的neo4j的库是graph.db,它的数据存储在neo4j的目录下的data/databases/graph.db这个目录。
在浏览器输入http://localhost:7474/,可以看到图形界面。
You are connected as user neo4j
to the server bolt://localhost:7687
Connection credentials are stored in your web browser.
10.4 用python3实现第一个例子
----------------------------
#!/usr/bin/env python3
#!-*- coding:utf-8 -*-
from neo4j.v1 import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "123456"))
def print_friends_of(name):
with driver.session() as session:
with session.begin_transaction() as tx:
for record in tx.run("MATCH (a:Person)-[:KNOWS]->(f) "
"WHERE a.name = {name} "
"RETURN f.name", name=name):
print(record["f.name"])
print_friends_of("Alice")
----------------------------
10.5 driver object
一个driver object管理一个neo4j的一个实例,包括这个实例下的所有数据库,包括url,帐号密码,配置。它管理一个连接池,由管理Session实例。
---------------------------
from neo4j.v1 import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "123456"))
---------------------------
10.6 cypher sessions
一个session是一个逻辑上下文,它是neo4j的事务单元的运行环境。
10.7 type system类型系统
这里包括Node, Relationship, Path。
11. Cypher语法
11.1 创建一个只有一节点的图,其实也就是数据
CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })
创建这个节点后,数据就写入到文件持久化存储了,neo4j关闭重启节点都会在。
11.2 从图里查找一个节点
MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;
MATCH (ee {name: "Emil"}) RETURN tom
11.3 创建更多的节点
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)
注意,节点可以被重复加入,所有属性相同的节点可以存在。
11.4 寻找一个演员演出过的所有电影
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
11.5 删除全部节点和关系
MATCH (n) DETACH DELETE n
12. 进一步细节
两个节点的关系,也叫做pattern。比如说,一个人住在一个城市 a persion LIVES_IN a city。一个城市是一个国家的一部分 a city is PART_OF a country.
简单的pattern可以再次组装成复杂模式,比如 (:person) -[:LIVES_IN]-> (:city) -[:PART_OF]-> (:Country)
12.1 node的例子
()
(matrix)
(:Movie)
(matrix:Movie)
(matrix:Movie {title: "The Matrix"})
(matrix:Movie {title: "The Matrix", released: 1997})
12.2 relationship的例子
-->
-[role]->
-[:ACTED_IN]->
-[role:ACTED_IN]->
-[role:ACTED_IN {roles: ["Neo"]}]->
"--"无向关系
"-->"和"<--"表示有向关系
[..]用于增加细节,包括变量名,属性,and/or信息。
12.3 一个复杂的组合pattern
(keanu:Person:Actor {name: "Keanu Reeves"} )
-[role:ACTED_IN {roles: ["Neo"] } ]->
(matrix:Movie {title: "The Matrix"} )
变量keanu表示一个person也就是一个actor,它的属性name是"Keanu Reeves"。
变量matrix表示一个move,它的属性title是"The Matrix"
变量keanu和matrix之间有一个有向的label,keanu对matrix有ACTED_IN关系,这个relationship的变量名是role,这个relationship的属性是reoles是"neo"。
12.4 pattern可以表示为变量,比如
acted_in = (:Person)-[:ACTED_IN]->(:Movie)
13. cypher
13.1 查找一个人的朋友的朋友关系
MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof)
RETURN john.name, fof.name
13.2 这又是一个复杂查询关系
MATCH (user)-[:friend]->(follower)
WHERE user.name IN ['Joe', 'John', 'Sara', 'Maria', 'Steve'] AND follower.name =~ 'S.*'
RETURN user.name, follower.name
阅读全文
0 0
- [bigdata-082] 图数据库neo4j安装运行界面文档python3开发示例
- [bigdata-83] python3+图数据库neo4j 电话号码 身份证 黑名单 创建节点 标签 关系 增标记 增关系 查询pattern示例
- [bigdata-086] python3+neo4j 从mysql数据库读取记录然后创建节点和关系写入到neo4j
- 图数据库Neo4j安装笔记
- neo4j安装与示例
- neo4j安装与示例
- 图数据库Neo4j安装及入门:
- 图形数据库 Neo4j 开发
- [bigdata-64] centos 6.8 安装 pip3 python3
- [bigdata-068] centos 安装python3和pip3
- 图形数据库 Neo4j 开发实战
- 图形数据库 Neo4j 开发实战
- 图形数据库 Neo4j 开发实战
- 图形数据库 Neo4j 开发实战
- 图数据库 Neo4j 入门
- 图数据库Neo4J
- 图数据库neo4j初探
- 图数据库Neo4j介绍
- linq笔记
- Android studio打包遇到的问题总结
- SQLSERVER的TOP方法在oracle中的实现方式
- Java 递归实例 – 阶乘
- Mac在Finder中当前目录下打开iTerm2
- [bigdata-082] 图数据库neo4j安装运行界面文档python3开发示例
- 定义c/c++全局变量/常量几种方法的区别
- 双目求深度
- OkHttp网络请求
- Python数学计算:Numpy和Scipy(矩阵相关)
- 获取当前手机网络情况
- PHP traits (复用机制)
- MAC OS安装tar.gz版Mysql(5.6/5.7略有差别)
- Stringbuffer常用方法