Neo4j-Cypher查询语言-语法 交互neo4j 图数据库:
一、优秀的博客
http://www.ttlsa.com/nosql/how-to-neo4j-cypher-query-language/
http://hugh-wangp.iteye.com/blog/1848841
二、此查询语言包括几部分:
- START:通过索引查找或者元素的ID值获取的图中的起始节点
- MATCH:图的匹配模式,匹配START的开始节点
- WHERE:过滤条件
- RETURN:返回所需的结果
- CREATE:创建节点或者关系
- DELETE:删除节点、关系或者属性
- SET:设置属性的值
- FOREACH:对list中的元素一次一个的执行操作( Performs updating actions once per element in a list)
- WITH:切分一个query成多个不同的部分
三、例子
通过节点的ID得到一个用户的列表,并遍历图找到这些用户的朋友,返回朋友姓名是由S起始的用户和朋友信息
1
2
3
4
|
START user= node (5,4,1,2,3)
MATCH user-[:friend]->follower
WHERE follower.name =~ 'S.*'
RETURN user, follower.name
|
---------------------------------------------java代码交互neo4j数据库----------------------------------------------
一、优秀博客
http://qinxuye.me/article/introduction-to-neo4j/
https://www.ibm.com/developerworks/cn/java/j-lo-neo4j/
官方api ---> https://neo4j.com/docs/api/java-driver/current/
图算法 最短路径,所有路径等API:https://www.programcreek.com/java-api-examples/index.php?api=org.neo4j.graphalgo.GraphAlgoFactory
-------------------------maven pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Neo4jTest</groupId> <artifactId>Neo4jTest1.0</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-bolt</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> <version>1.6.0-alpha01</version> </dependency> </dependencies> </project>
-----------------代码
public class CreateNode { Driver driver; public CreateNode(String uri,String user,String password){ driver = GraphDatabase.driver(uri, AuthTokens.basic(user,password)); System.out.println("连接neo4j..."); } private void addPerson(String name){ try (Session session = driver.session()){ System.out.println("开始neo4j数据库事务..."); try (Transaction tx = session.beginTransaction()){ tx.run("START n=node(*)\n" + " \n" + " RETURN n.name"); tx.success(); } } } public void close(){ driver.close(); } public void getPeople(){ try (Session session = driver.session()){ StatementResult result = session.run("START n=node(*) RETURN n.name"); System.out.println(result.toString()); while (result.hasNext()){ Record record = result.next(); System.out.println(record.toString()); System.out.println(record.keys() +" "+ record.values()); } } } public static void main(String args[]){ CreateNode node1 = new CreateNode("bolt://172.16.36.134:7687","neo4j","taoge"); node1.addPerson("zhangsan"); node1.getPeople(); node1.close(); } }
代码二 、
public class GraphDbFactory { public void InitGraphDbservice(){ GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase(new File("/var/graphDb")); db.createNode(); } }