用户登录
用户注册

分享至

neo4j cypher delete

  • 作者: 二郎22861586
  • 来源: 51数据库
  • 2020-10-02
neo4j采纳java语言开发,如果我们要在java程序中以内嵌方式应用neo4j,只需导入neo4j的对应包即可。 首先,我们来创建一个maven项目并改动pom.xml添加对neo4j的依附。 4.0.0 neo4j-learn neo4j-learn 1.0-SNAPSHOT org.neo4j neo4j 1.9.4 然后,...



  package com.neo4j; import java.io.file; import java.io.ioexception; import org.neo4j.graphdb.direction; import org.neo4j.graphdb.graphdatabaseservice; import org.neo4j.graphdb.node; import org.neo4j.graphdb.path; import org.neo4j.graphdb.relationship; import org.neo4j.graphdb.relationshiptype; import org.neo4j.graphdb.factory.graphdatabasefactory; import org.neo4j.graphdb.transaction; import org.neo4j.graphdb.index.index; import org.neo4j.graphdb.traversal.evaluators; import org.neo4j.graphdb.traversal.traverser; import org.neo4j.graphdb.traversal.traversaldescription; import org.neo4j.kernel.traversal; import org.neo4j.kernel.impl.util.fileutils; import org.neo4j.kernel.impl.util.stringlogger; import org.neo4j.cypher.executionengine; import org.neo4j.cypher.executionresult; import org.neo4j.graphalgo.pathfinder; import org.neo4j.graphalgo.graphalgofactory; public class example { // private static final string db_path = "target/neo4jexample"; private static final string db_path = "testgraph.db"; private static final string primary_key = "name"; private graphdatabaseservice graphdb; private index<node> nodeindex; private long startnodeid; private static enum reltypes implements relationshiptype { neo_node, knows, coded_by } private void cleardb() { try { fileutils.deleterecursively(new file(db_path)); } catch(ioexception e) { throw new runtimeexception(e); } } public void createdb() { cleardb(); graphdb = new graphdatabasefactory().newembeddeddatabase(db_path); nodeindex = graphdb.index().fornodes("nodes"); registershutdownhook(graphdb); transaction tx = graphdb.begintx(); try { node startnode = graphdb.createnode(); startnodeid = startnode.getid(); node thomas = graphdb.createnode(); thomas.setproperty( "name", "thomas anderson" ); thomas.setproperty( "age", 29 ); nodeindex.add(thomas, primary_key, thomas.getproperty("name")); startnode.createrelationshipto( thomas, reltypes.neo_node ); node trinity = graphdb.createnode(); trinity.setproperty( "name", "trinity" ); nodeindex.add(trinity, primary_key, trinity.getproperty("name")); relationship rel = thomas.createrelationshipto( trinity, reltypes.knows ); rel.setproperty( "age", "3 days" ); node morpheus = graphdb.createnode(); morpheus.setproperty( "name", "morpheus" ); morpheus.setproperty( "rank", "captain" ); morpheus.setproperty( "occupation", "total badass" ); nodeindex.add(morpheus, primary_key, morpheus.getproperty("name")); thomas.createrelationshipto( morpheus, reltypes.knows ); rel = morpheus.createrelationshipto( trinity, reltypes.knows ); rel.setproperty( "age", "12 years" ); node cypher = graphdb.createnode(); cypher.setproperty( "name", "cypher" ); cypher.setproperty( "last name", "reagan" ); nodeindex.add(cypher, primary_key, cypher.getproperty("name")); trinity.createrelationshipto( cypher, reltypes.knows ); rel = morpheus.createrelationshipto( cypher, reltypes.knows ); rel.setproperty( "disclosure", "public" ); node smith = graphdb.createnode(); smith.setproperty( "name", "agent smith" ); smith.setproperty( "version", "1.0b" ); smith.setproperty( "language", "c++" ); nodeindex.add(smith, primary_key, smith.getproperty("name")); rel = cypher.createrelationshipto( smith, reltypes.knows ); rel.setproperty( "disclosure", "secret" ); rel.setproperty( "age", "6 months" ); node architect = graphdb.createnode(); architect.setproperty( "name", "the architect" ); nodeindex.add(architect, primary_key, architect.getproperty("name")); smith.createrelationshipto( architect, reltypes.coded_by ); tx.success(); } finally { tx.finish(); } } public traverser getfriends(final node person) { traversaldescription td = traversal.description() .breadthfirst() .relationships(reltypes.knows, direction.outgoing) .evaluator(evaluators.excludestartposition()); return td.traverse(person); } public void printnodefriends(node node) { // node neo = graphdb.getnodebyid(startnodeid) // .getsinglerelationship(reltypes.neo_node, direction.outgoing) // .getendnode(); int friendsnumbers = 0; system.out.println(node.getproperty(primary_key) + "'s friends:"); for(path friendpath: getfriends(node)) { system.out.println("at depth " + friendpath.length() + " => " + friendpath.endnode().getproperty(primary_key)); friendsnumbers++; } system.out.println("number of friends found: " + friendsnumbers); } public void printcypherfriends(string name) { graphdb = new graphdatabasefactory().newembeddeddatabase(db_path); executionengine engine = new executionengine(graphdb, stringlogger.logger(db_path)); // executionresult result = engine.execute( // "start n=node:nodes(name=\"" + name + "\") " // + "match n-[:knows*..]->f " // + "return distinct f, f.name"); executionresult result = engine.execute("start n=node(500000) return n;"); system.out.println(result.dumptostring()); } public void printthomasfriends() { printnodefriends(nodeindex.get(primary_key, "thomas anderson").getsingle()); } public iterable<path> findshortestpath(node node1, node node2) { pathfinder<path> finder = graphalgofactory.shortestpath( traversal.expanderfortypes(reltypes.knows, direction.outgoing), 5); iterable<path> paths = finder.findallpaths(node1, node2); return paths; } public void printshortestpaths() { node node1 = nodeindex.get(primary_key, "thomas anderson").getsingle(); node node2 = nodeindex.get(primary_key, "agent smith").getsingle(); for(path shortestpath: findshortestpath(node1, node2)) { system.out.println(shortestpath.tostring()); } } private static void registershutdownhook(final graphdatabaseservice graphdb) { runtime.getruntime().addshutdownhook(new thread() { @override public void run() { graphdb.shutdown(); } }); } private void shutdown() { graphdb.shutdown(); } /** * @param args */ public static void main(string[] args) { example example = new example(); // example.createdb(); long t1 = system.currenttimemillis(); // example.printthomasfriends(); example.printcypherfriends("thomas anderson"); long t2 = system.currenttimemillis(); system.out.print(t2-t1); //example.printshortestpaths(); example.shutdown(); } }
软件
前端设计
程序设计
Java相关