2020-01-09

import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.junit.Test;
import org.neo4j.driver.v1.AuthTokens;
import org.neo4j.driver.v1.Driver;
import org.neo4j.driver.v1.GraphDatabase;
import org.neo4j.driver.v1.Record;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.StatementResult;
import org.neo4j.driver.v1.Value;
import org.neo4j.driver.v1.types.Node;
import org.neo4j.driver.v1.types.Path;
import org.neo4j.driver.v1.types.Relationship;
 
public class Neo4jBatchTest {
 
	Driver driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "n123"));
	private Session session = driver.session();
 
	/**
	 * 批量创建
	 * 
	 * @throws Exception
	 */
	@Test
	public void shortEstPath() throws Exception {
		try {
			String cmdSql = "MATCH n=shortestPath((a:朋友圈{姓名:'小讯'})-[*]-"
					+ "(b:朋友圈{姓名:'小锐'})) return n";
			StatementResult result = session.run(cmdSql);
			while (result.hasNext()) {
				Record record = result.next();
				List<Value> values = record.values();
				Map<Long, Node> nodesMap = new HashMap<>();
				for (Value value : values) {
					if (value.type().name().equals("PATH")) {
						Path p = value.asPath();
						System.out.println("小讯和小锐之间的关系最短路径长度为:" + p.length());
						System.out.println("====================================");
						Iterable<Node> nodes = p.nodes();
						for (Node node : nodes) {
							nodesMap.put(node.id(), node);
						}
 
						/**
						 * 打印最短路径里面的关系 == 关系包括起始节点的ID和末尾节点的ID,以及关系的type类型
						 */
						Iterable<Relationship> relationships = p.relationships();
						for (Relationship relationship : relationships) {
							Long startID = relationship.startNodeId();
							Long endID = relationship.endNodeId();
							String rType = relationship.type();
							/**
							 * asMap 相当于 节点的properties属性信息
							 */
							System.out.println(
									nodesMap.get(startID).asMap() + "-" + rType + "-" 
							+ nodesMap.get(endID).asMap());
						}
					}
				}
			}
		} catch (Exception e) {
			System.err.println(e.getClass() + "," + e.getMessage());
		}
	}
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值