加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[bigdata-082] 图数据库neo4j安装运行界面文档python3开发示例

发布时间:2020-12-14 03:10:36 所属栏目:大数据 来源:网络整理
导读: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.或
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,"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",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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读