neo4j图数据安装以及基本操作命令
neo4j安装配置使用,
安装环境:Ubuntu系统
jdk1.8 (neo4j 只支持jdk1.8以上版本)
- 下载 neo4j
neo4j的下载window可以下载 exe 安装包。
Linux 环境 可以下载NEO4J-SERVER,分为免费的社区版(Community), 收费的企业版(Enterprise)
https://neo4j.com/download/other-releases/#releases
https://neo4j.com/artifact.php?name=neo4j-community-3.3.2-unix.tar.gz - 安装neo4j
cd ~/soft/
tar -zxvf neo4j-community-3.3.2-unix.tar.gz
cd neo4j-community-3.3.2/
配置环境变量
vi /etc/profile
export NEO4J_HOME=/home/hadoop/soft/neo4j-community-3.3.2
export PATH=$NEO4J_HOME/bin:$PATH
另外,修改配置文件/etc/security/limits.conf ,增加下面配置。
hadoop soft nofile 65535 #警告设定hadoop用户最大打开文件数为65535
hadoop hard nofile 65535 #严格设定hadoop用户最大打开文件数为65535
修改neo4j对外服务IP地址:
vi conf/neo4j.conf
dbms.connectors.default_listen_address=0.0.0.0
Neo4j服务关闭启动
neo4j start ## 启动neo4j
neo4j stop ## 关闭neo4j
Neo4j连接地址
通过浏览器访问:
http://192.168.17.50:7474
需要输入密码,默认用户名/密码是:neo4j/neo4j
程序访问URL: bolt://192.168.17.50:7687
重置密码:
删掉 ~\neo4j-community-3.3.2/data/dbms/路径的auth文件后重新设置密码。
命令行操作neo4j:
./cypher-shell
Neo4j 基本操作命令
- 创建一个graph
CREATE (TheMatrix:Movie {title:\'The Matrix\', released:1999, tagline:\'Welcome to the Real World\'})
CREATE (Keanu:Person {name:\'Keanu Reeves\', born:1964})
CREATE (Carrie:Person {name:\'Carrie-Anne Moss\', born:1967})
CREATE (Laurence:Person {name:\'Laurence Fishburne\', born:1961})
CREATE (Hugo:Person {name:\'Hugo Weaving\', born:1960})
CREATE (LillyW:Person {name:\'Lilly Wachowski\', born:1967})
CREATE (LanaW:Person {name:\'Lana Wachowski\', born:1965})
CREATE (JoelS:Person {name:\'Joel Silver\', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:[\'Neo\']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:[\'Trinity\']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:[\'Morpheus\']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:[\'Agent Smith\']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix)
CREATE (Emil:Person {name:"Emil Eifrem", born:1978})
CREATE (Emil)-[:ACTED_IN {roles:["Emil"]}]->(TheMatrix)
CREATE (TheMatrixReloaded:Movie {title:\'The Matrix Reloaded\', released:2003, tagline:\'Free your mind\'})
CREATE
(Keanu)-[:ACTED_IN {roles:[\'Neo\']}]->(TheMatrixReloaded),
(Carrie)-[:ACTED_IN {roles:[\'Trinity\']}]->(TheMatrixReloaded),
(Laurence)-[:ACTED_IN {roles:[\'Morpheus\']}]->(TheMatrixReloaded),
(Hugo)-[:ACTED_IN {roles:[\'Agent Smith\']}]->(TheMatrixReloaded),
(LillyW)-[:DIRECTED]->(TheMatrixReloaded),
(LanaW)-[:DIRECTED]->(TheMatrixReloaded),
(JoelS)-[:PRODUCED]->(TheMatrixReloaded)
CREATE (TheMatrixRevolutions:Movie {title:\'The Matrix Revolutions\', released:2003, tagline:\'Everything that has a beginning has an end\'})
CREATE
(Keanu)-[:ACTED_IN {roles:[\'Neo\']}]->(TheMatrixRevolutions),
(Carrie)-[:ACTED_IN {roles:[\'Trinity\']}]->(TheMatrixRevolutions),
(Laurence)-[:ACTED_IN {roles:[\'Morpheus\']}]->(TheMatrixRevolutions),
(Hugo)-[:ACTED_IN {roles:[\'Agent Smith\']}]->(TheMatrixRevolutions),
(LillyW)-[:DIRECTED]->(TheMatrixRevolutions),
(LanaW)-[:DIRECTED]->(TheMatrixRevolutions),
(JoelS)-[:PRODUCED]->(TheMatrixRevolutions)
CREATE (TheDevilsAdvocate:Movie {title:"The Devil\'s Advocate", released:1997, tagline:\'Evil has its winning ways\'})
CREATE (Charlize:Person {name:\'Charlize Theron\', born:1975})
CREATE (Al:Person {name:\'Al Pacino\', born:1940})
CREATE (Taylor:Person {name:\'Taylor Hackford\', born:1944})
CREATE
(Keanu)-[:ACTED_IN {roles:[\'Kevin Lomax\']}]->(TheDevilsAdvocate),
(Charlize)-[:ACTED_IN {roles:[\'Mary Ann Lomax\']}]->(TheDevilsAdvocate),
(Al)-[:ACTED_IN {roles:[\'John Milton\']}]->(TheDevilsAdvocate),
(Taylor)-[:DIRECTED]->(TheDevilsAdvocate)
CREATE (AFewGoodMen:Movie {title:"A Few Good Men", released:1992, tagline:"In the heart of the nation\'s capital, in a courthouse of the U.S. government, one man will stop at nothing to keep his honor, and one will stop at nothing to find the truth."})
CREATE (TomC:Person {name:\'Tom Cruise\', born:1962})
CREATE (JackN:Person {name:\'Jack Nicholson\', born:1937})
CREATE (DemiM:Person {name:\'Demi Moore\', born:1962})
CREATE (KevinB:Person {name:\'Kevin Bacon\', born:1958})
CREATE (KieferS:Person {name:\'Kiefer Sutherland\', born:1966})
CREATE (NoahW:Person {name:\'Noah Wyle\', born:1971})
CREATE (CubaG:Person {name:\'Cuba Gooding Jr.\', born:1968})
CREATE (KevinP:Person {name:\'Kevin Pollak\', born:1957})
CREATE (JTW:Person {name:\'J.T. Walsh\', born:1943})
CREATE (JamesM:Person {name:\'James Marshall\', born:1967})
CREATE (ChristopherG:Person {name:\'Christopher Guest\', born:1948})
CREATE (RobR:Person {name:\'Rob Reiner\', born:1947})
CREATE (AaronS:Person {name:\'Aaron Sorkin\', born:1961})
CREATE
(TomC)-[:ACTED_IN {roles:[\'Lt. Daniel Kaffee\']}]->(AFewGoodMen),
(JackN)-[:ACTED_IN {roles:[\'Col. Nathan R. Jessup\']}]->(AFewGoodMen),
(DemiM)-[:ACTED_IN {roles:[\'Lt. Cdr. JoAnne Galloway\']}]->(AFewGoodMen),
(KevinB)-[:ACTED_IN {roles:[\'Capt. Jack Ross\']}]->(AFewGoodMen),
(KieferS)-[:ACTED_IN {roles:[\'Lt. Jonathan Kendrick\']}]->(AFewGoodMen),
(NoahW)-[:ACTED_IN {roles:[\'Cpl. Jeffrey Barnes\']}]->(AFewGoodMen),
(CubaG)-[:ACTED_IN {roles:[\'Cpl. Carl Hammaker\']}]->(AFewGoodMen),
(KevinP)-[:ACTED_IN {roles:[\'Lt. Sam Weinberg\']}]->(AFewGoodMen),
(JTW)-[:ACTED_IN {roles:[\'Lt. Col. Matthew Andrew Markinson\']}]->(AFewGoodMen),
(JamesM)-[:ACTED_IN {roles:[\'Pfc. Louden Downey\']}]->(AFewGoodMen),
(ChristopherG)-[:ACTED_IN {roles:[\'Dr. Stone\']}]->(AFewGoodMen),
(AaronS)-[:ACTED_IN {roles:[\'Man in Bar\']}]->(AFewGoodMen),
(RobR)-[:DIRECTED]->(AFewGoodMen),
(AaronS)-[:WROTE]->(AFewGoodMen)
WITH TomH as a
MATCH (a)-[:ACTED_IN]->(m)<-[:DIRECTED]-(d) RETURN a,m,d LIMIT 10
;
- 查找名字叫 “Tom Hanks” 的演员
MATCH (tom {name: "Tom Hanks"}) RETURN tom
- 查找 标题包含"Cloud Atlas"的电影 “”Find the movie with title "Cloud Atlas"...
MATCH (cloudAtlas {title: "Cloud Atlas"}) RETURN cloudAtlas
- 查找10个人的名字
MATCH (people:Person) RETURN people.name LIMIT 10
- 查找1990年到 2000年上映的电影
MATCH (nineties:Movie) WHERE nineties.released >= 1990 AND nineties.released < 2000 RETURN nineties.title
- 查找出 "Tom Hanks" 表演的所有电影
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies
- 查找出电影 "Cloud Atlas"的导演是谁?
MATCH (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) RETURN directors.name
- 查找出 Tom Hanks 的合作演员
MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors.name
- 人们怎么和"Cloud Atlas" 产生关系?
MATCH (people:Person)-[relatedTo]-(:Movie {title: "Cloud Atlas"}) RETURN people.name, Type(relatedTo), relatedTo
- 距离演员"Kevin Bacon" 4度的影片和演员
MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..4]-(hollywood)
RETURN DISTINCT hollywood
- "Kevin Bacon" 和 "Meg Ryan" 之间的最短路径
MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
)
RETURN p
- 找到"Tom Hanks"合作过的演员的 合作演员,从中找出没有和"Tom Hanks"合作过的。
MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors)
WHERE NOT (tom)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) AND tom <> cocoActors
RETURN cocoActors.name AS Recommended, count(*) AS Strength ORDER BY Strength DESC
- 找一个能把 "Tom Hanks" 介绍给 "Tom Cruise" 的人。即把这两个人之间的路径展示出来。
MATCH (tom:Person {name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cruise:Person {name:"Tom Cruise"})
RETURN tom, m, coActors, m2, cruise
- 删除所有的电影和影人节点,包括他们之间的关系
MATCH (n) DETACH DELETE n
- 查看图的内容是否已经清空:
MATCH (n) RETURN n