精华内容
下载资源
问答
  • I am trying this construct this query following Luanne and Micheal Hunger's suggestion: import java.io.IOException; import java.util.ArrayList; import org.neo4j.graphdb.GraphDatabaseService; import ...

    I have 2 nodes: name and city. and a relationship between these two is (name) [:LIVES_IN]->(city).

    I am trying to generate a query to find out who are those people living in city X(where X will be coming from a text box).

    I am trying this construct this query following Luanne and Micheal Hunger's suggestion:

    import java.io.IOException;

    import java.util.ArrayList;

    import org.neo4j.graphdb.GraphDatabaseService;

    import org.neo4j.graphdb.Node;

    import org.neo4j.graphdb.RelationshipType;

    import org.neo4j.graphdb.Transaction;

    import org.neo4j.graphdb.factory.GraphDatabaseFactory;

    import org.neo4j.helpers.collection.IteratorUtil;

    import org.neo4j.cypher.javacompat.ExecutionEngine;

    import org.neo4j.cypher.javacompat.ExecutionResult;

    public class registrationFrame extends javax.swing.JFrame {

    public static final String DB_PATH = "D://data";

    public static GraphDatabaseService graphDb = null;

    Node person;

    Node password;

    Node city;

    String nodeResulta;

    public registrationFrame() {

    initComponents();

    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//node and relationship creation code

    try (Transaction tx = graphDb.beginTx();) {

    person = graphDb.createNode();

    person.setProperty("name", jTextField1.getText());

    person.setProperty("password", jPasswordField1.getPassword());

    graphDb.index().forNodes("name").add(person, "name", jTextField1.getText());

    city = graphDb.createNode();

    city.setProperty("city_name", jTextField2.getText());

    graphDb.index().forNodes("city_name").add(city, "city_name", jTextField2.getText());

    person.createRelationshipTo(city, RelTypes.LIVES_IN);

    tx.success();

    }

    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//query code

    ExecutionEngine engine = new ExecutionEngine(graphDb);

    ExecutionResult result;

    String temp=jTextField2.getText();

    Map params=new HashMap<>();

    //result = engine.execute("START n=node(*) MATCH (x:city)

    //List columns = result.columns();

    //Iterator n_column = result.columnAs( "person" );

    try (Transaction ignored = graphDb.beginTx()) {

    //result = engine.execute("START n=node(*) MATCH (x:city)

    // END SNIPPET: execute

    // START SNIPPET: items

    //result = engine.execute("START n=node(*) MATCH (x:city) RETURN x");//this query also returns nothing

    params.put("c_name",temp);

    result=engine.execute("MATCH (city_name:city {city_name:{c_name}})

    System.out.println(result);

    Iterator n_column = result.columnAs("person");

    for (Node node : IteratorUtil.asIterable(n_column)) {

    // note: we're grabbing the name property from the node,

    // not from the n.name in this case.

    nodeResulta = node + ": " + node.getProperty("name") + '\n';

    //nodeResult1.add(node.getProperty( "name" ).toString());

    }

    // END SNIPPET: items

    }

    jTextArea1.setText(nodeResulta);// output will show here

    }

    public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {

    new registrationFrame().setVisible(true);

    graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);

    registerShutdownHook(graphDb);

    //System.out.println("Created Social Graph!!");

    }

    });

    }

    private static void registerShutdownHook(final GraphDatabaseService graphDb) {

    Runtime.getRuntime().addShutdownHook(new Thread() {

    @Override

    public void run() {

    graphDb.shutdown();

    }

    });

    }

    public static enum RelTypes implements RelationshipType {

    LIVES_IN,

    FRIEND,

    CUISINE,

    LIKES,

    IN

    }

    But this query does not give any result as well as any exception.

    Is my query formation right? Can any one tell me how can I resolve this? Shall I change my neo4j version because I am following everything as Luanne and Miheal HUnger has asked.

    Thank You

    解决方案

    You have not quoted the city value:

    start n=node(*) MATCH n-[:LIVES_IN]->city where city.city=dhaka return n.name

    should be

    start n=node(*) MATCH n-[:LIVES_IN]->city where city.city='dhaka' return n.name

    Also, please use parameters:

    start n=node(*) MATCH n-[:LIVES_IN]->city where city.city={city} return n.name

    EDIT

    Since you've modified your query, from Michael's comment, try

    Map params=new HashMap();

    params.put("city_name","dhaka");

    result=engine.execute("MATCH (city:City {city:{city_name})

    Iterator n_column = result.columnAs( "person" );

    Create an index on City before that:

    CREATE INDEX ON :City(city)

    (http://docs.neo4j.org/chunked/stable/query-schema-index.html)

    Please also go through the following learning material:

    展开全文
  • java项目集成neo4j的demo

    2018-11-15 15:10:44
    java项目集成neo4j的例子,包含所需的jar包,下载压缩后可以直接跑起来
  • Java读取CSV插入Neo4j并生成Echarts关系图
  • 详细使用请参阅:http://blog.csdn.net/shenshouer/article/details/7515380
  • neo4j安装 我创建了一个示例,说明如何在使用Neo4J数据库的Quarkus应用程序中实现... 在上一个视频中,我展示了如何将Neo4J集成到Quarkus应用程序中。 本示例基于该咖啡店应用程序。 此示例是概念证明,是如何实...
    neo4j安装

    neo4j安装

    我创建了一个示例,说明如何在使用Neo4J数据库的Quarkus应用程序中实现撤消功能。 从用户的角度来看,撤消操作可能看起来并不引人注目,但是一旦您知道需要在数据库端考虑的内容,它就变得微不足道了。 特别是在图形数据库中,我们需要考虑这些关系。

    在上一个视频中,我展示了如何将Neo4J集成到Quarkus应用程序中。 本示例基于该咖啡店应用程序。

    此示例是概念证明,是如何实现此功能的起点。 该代码基于Neo4j流数据集成插件,该插件在我们的Neo4J实例中运行,并发出更改数据捕获(CDC)数据表示形式。 在我们的示例中,我们不流式传输CDC事件,而是将事务处理数据直接保存在图中的单独的:Action节点中,可将其用于将来的撤消操作。

    您可以在下面找到所有示例的源代码。

    资源资源

    您可以自己尝试该示例。 以下存储库包含更新的Quarkus应用程序和在数据库实例中运行的Neo4J插件:

    祝您一切顺利!

    所有观点均为我个人观点,并不反映我雇主或同事的观点。

    翻译自: https://www.javacodegeeks.com/2021/01/undo-feature-with-neo4j-enterprise-java.html

    neo4j安装

    展开全文
  • java语言下应用neo4j驱动查询

    千次阅读 2018-11-21 17:12:04
    项目中用到了neo4j展示,自己总结了一些比较灵活又简便的方法,部分代码分享如下: 1.使用Maven依赖管理,在pom.xml文件中添加如下命令,获得驱动包: &lt;dependency&gt; &lt;groupId&gt;...

                项目中用到了neo4j的展示,自己总结了一些比较灵活又简便的方法,部分代码分享如下:

    1.使用Maven依赖管理,在pom.xml文件中添加如下命令,获得驱动包:

            <dependency>
    	        <groupId>org.neo4j.driver</groupId>
    	        <artifactId>neo4j-java-driver</artifactId>
    	        <version>1.6.3</version>
            </dependency>

    2.创建Neo4jDriver类

             这里我将配置文件的加载与neo4j数据库的连接放到Neo4jDriver类的构造方法里,每实例化一次就实现连接neo4j数据库一次。因为我前端用的是echarts导力向图进行展示的,所以在这个类里我将cql查询结果进行了数据对应格式转换。官网中echarts导力向图要求的格式示例如下:

         nodes:[
                    {category:0, name: '乔布斯', value : 10, label: '乔布斯\n(主要)'},
                    {category:1, name: '丽萨-乔布斯',value : 2},
                    {category:1, name: '保罗-乔布斯',value : 3},
                    {category:1, name: '克拉拉-乔布斯',value : 3},
                    {category:1, name: '劳伦-鲍威尔',value : 7},
                    {category:2, name: '史蒂夫-沃兹尼艾克',value : 5},
                    {category:2, name: '奥巴马',value : 8},
                    {category:2, name: '比尔-盖茨',value : 9},
                    {category:2, name: '乔纳森-艾夫',value : 4},
                    {category:2, name: '蒂姆-库克',value : 4},
                    {category:2, name: '龙-韦恩',value : 1},
                ],
                links : [
                    {source : '丽萨-乔布斯', target : '乔布斯', weight : 1, name: '女儿'},
                    {source : '保罗-乔布斯', target : '乔布斯', weight : 2, name: '父亲'},
                    {source : '克拉拉-乔布斯', target : '乔布斯', weight : 1, name: '母亲'},
                    {source : '劳伦-鲍威尔', target : '乔布斯', weight : 2},
                    {source : '史蒂夫-沃兹尼艾克', target : '乔布斯', weight : 3, name: '合伙人'},
                    {source : '奥巴马', target : '乔布斯', weight : 1},
                    {source : '比尔-盖茨', target : '乔布斯', weight : 6, name: '竞争对手'},
                    {source : '乔纳森-艾夫', target : '乔布斯', weight : 1, name: '爱将'},
                    {source : '蒂姆-库克', target : '乔布斯', weight : 1},
                    {source : '龙-韦恩', target : '乔布斯', weight : 1},
                    {source : '克拉拉-乔布斯', target : '保罗-乔布斯', weight : 1},
                    {source : '奥巴马', target : '保罗-乔布斯', weight : 1},
                    {source : '奥巴马', target : '克拉拉-乔布斯', weight : 1},
                    {source : '奥巴马', target : '劳伦-鲍威尔', weight : 1},
                    {source : '奥巴马', target : '史蒂夫-沃兹尼艾克', weight : 1},
                    {source : '比尔-盖茨', target : '奥巴马', weight : 6},
                    {source : '比尔-盖茨', target : '克拉拉-乔布斯', weight : 1},
                    {source : '蒂姆-库克', target : '奥巴马', weight : 1}
                ]

     

    package com.dbs.util;
    
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    
    import org.apache.log4j.Logger;
    import org.neo4j.driver.internal.InternalNode;
    import org.neo4j.driver.internal.InternalRelationship;
    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.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    @Configuration
    @EnableTransactionManagement
    public class Neo4jDriver {
    
    	Driver driver;
    	private static final Logger log = Logger.getLogger(Neo4jDriver.class);// 日志文件
    	// 表示定义数据库的用户名
    	private static String USERNAME;
    	// 定义数据库的密码
    	private static String PASSWORD;
    	// 定义数据库的驱动信息
    	private static String DRIVER;
    	// 定义访问数据库的地址
    	private static String URL;
    	
    	/**
    	 * 加载数据库配置信息,并给相关的属性赋值
    	 */
    	public static void loadConfig() {
    		try {
    			InputStream inStream = Neo4jDriver.class.getResourceAsStream("/application.properties");
    			Properties prop = new Properties();
    			prop.load(inStream);
    			USERNAME = prop.getProperty("spring.data.neo4j.username");
    			PASSWORD = prop.getProperty("spring.data.neo4j.password");
    			DRIVER = prop.getProperty("spring.data.neo4j.driver");
    			URL = prop.getProperty("spring.data.neo4j.uri");
    		} catch (Exception e) {
    			throw new RuntimeException("读取数据库配置文件异常!", e);
    		}
    	}
    	
    	
    	public Neo4jDriver() {
    		loadConfig();
    	    driver = GraphDatabase.driver(URL, AuthTokens.basic(USERNAME, PASSWORD));
    	}
    
    	/**
    	 * 根据cql语句进行查询节点,关系线等数据
    	 *
    	 * @param cql
    	 * @return
    	 */
    	public JSONObject printJSON(String cql) {
    	    JSONObject jsonObject = new JSONObject();
    		JSONArray lineJsonArray = new JSONArray();
    		JSONObject lineJsonObject = new JSONObject();
    		Map<Long, Map<String, Object>> pointMap = new HashMap<Long, Map<String, Object>>();
    	    try  {
    	        Session session = driver.session();
    	        StatementResult result = session.run(cql);
    	        while (result.hasNext()) {
    	            Record record = result.next();
    	            Map<String, Object> date = record.asMap();// 这里面存的是这个关系的键值对,其实就是起始节点,关系,结束节点
    	            for (String key : date.keySet()) {
    	                Object object = date.get(key);
    
    	                if (key.startsWith("n")) {
    	                	InternalNode data = (InternalNode) object;// 强制转换
    		                long nodeid = data.id();
    	                    Map<String, Object> nodedatamap = new HashMap<String, Object>();
    	                    Map<String, Object> data1 = data.asMap();// 添加节点的属性
    	                    for (String key1 : data1.keySet()) {
    	                    	if(key1.equals("id")){
    	                    		 nodedatamap.put("nodeid", data1.get(key1));
    	                    	}else
    	                    		nodedatamap.put(key1, data1.get(key1));
    	                    }
    	                    nodedatamap.put("id", "'"+nodeid+"'");
    	                    int category = 0;
    	                    String lable = "company";
    	                    String labels = data.labels().toString();
    	                    if(labels.contains("human")){
    	                    	category = 1;
    	                    	lable = "human";
    	                    }	                    
    	                    nodedatamap.put("category", category);
    	                    nodedatamap.put("lable", lable);
    	                    pointMap.put(nodeid, nodedatamap);
    	                    //nodedatas.add(nodedatamap);
    	                	
    	                }else if (key.startsWith("r")) {
    	                	List<InternalRelationship> relationships = null;
    	                	relationships = (List<InternalRelationship>) object;// 强制转换
                    		if(!relationships.isEmpty()){
                    			for(InternalRelationship relationship:relationships){
                    				lineJsonObject = lineToJson(relationship);
                    				lineJsonArray.add(lineJsonObject);
                    			}	                			
                    		}else{
                    			continue;
                    		}
    	                }
    
    	            }
    	        }	        
    	        jsonObject.put("nodes", pointMap.values());
    			jsonObject.put("links", lineJsonArray);
    			
    
    	    } catch (Exception e) {
    	        e.printStackTrace();
    	    } finally {
    	        close();
    	    }
    	    return jsonObject;
    	}
    	
    	/**
    	 * 封装线
    	 * @param relationship
    	 * @return
    	 */
    	public JSONObject lineToJson(InternalRelationship relationship){
    		JSONObject lineJsonObject = new JSONObject();
        	
            Map<String, Object> data2 = relationship.asMap();// 添加关系的属性  //
            for (String key1 : data2.keySet()) {
            	lineJsonObject.put("type", data2.get(key1));
            }
            long source = relationship.startNodeId();// 起始节点id 
            long target = relationship.endNodeId();// 结束节点Id  
            
            lineJsonObject.put("source", "'"+source+"'");
    		lineJsonObject.put("target", "'"+target+"'");
            
    	    
    	    return lineJsonObject;
    	} 
    
    
    
    	/**
    	 * 关闭驱动
    	 */
    	public void close() {
    	    // Closing a driver immediately shuts down all open connections.
    	    driver.close();
    	}
    
    }
    

     3.编写service层

              之前cql的执行时用了通用mapper的方法,但这个方法只适合简单cql语句查询,无法满足cql查询的业务需求,所以这里我是根据查询条件进行cql语句的拼写。其中nodeLevel[0]参数判断的是cql的节点指向,nodeLevel[1]参数设置的是查询节点的深度。

    package com.dbs.neo4j.service.impl;
    
    import java.util.ArrayList;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    import com.alibaba.fastjson.JSONObject;
    import com.dbs.neo4j.service.CompanyService;
    import com.dbs.util.Neo4jDriver;
    
    @Service("companyService")
    public class CompanyServiceImpl implements CompanyService {
    
    	private static Logger logger = LoggerFactory.getLogger(CompanyServiceImpl.class);
    	private static final long serialVersionUID = -7377695482669420844L;
    	
    
    
    
    	/** 将查询条件转换为cypher语句 */
    	private String findCypher(ArrayList<String> list,String nodeName,String...nodeLevel) {
    		String cypher = "";
    
    		// 
    		String q1 = "";
    		String q2 = "";
    		String c = "";
    		if ("0".equals(nodeLevel[0])) {
    			q1 = ">";   //对外投资
    		}else if ("1".equals(nodeLevel[0])) {
    			q2 = "<";   //股东关系
    		}		
    		
    		if ("0".equals(nodeLevel[0])) {  //对外投资
    			cypher = "match p=(na:company{name:'"+nodeName+"'})"+q2+"-[:OUTBOUND_IN*0.."+nodeLevel[1]+"]-"+q1+"(nb:company)";
    			
    		}else if ("1".equals(nodeLevel[0])) {  //股东关系	
    			cypher = "match p=(na:company{name:'"+nodeName+"'})<-[*0.."+nodeLevel[1]+"]-"+q1+"(nb)";
    			c = "";
    		}else{			
    			cypher = "match p=(na:company{name:'"+nodeName+"'})-[:OUTBOUND_IN*0.."+nodeLevel[1]+"]-"+q1+"(nb:company),q=(nb)<-[:INVEST_IN*0.."+nodeLevel[1]+"]-(nc:human)";
    			c = ",relationships(q) as r1,nc";
    		}
    		
    		cypher += " return na,nb,relationships(p) as r"+c+";";
    
    		
    		logger.info(cypher);
    		return cypher;
    	}
    
    
    
    	@Override
    	public JSONObject find(ArrayList<String> list, String nodeName, String... nodeLevel) {
    			String cypher = findCypher(list, nodeName,nodeLevel);				
    			Neo4jDriver neo4jDriver = new Neo4jDriver();
    			JSONObject json = neo4jDriver.printJSON(cypher);
    			return json;
    	}
    }
    

     

     

    展开全文
  • Neo4j+Flex展示

    千次阅读 2012-04-26 17:58:37
    Neo4j+Flex展示 Java端工程源码 Flex端工程源码 Flex端工程依赖项目源码 使用步骤 待续...
    展开全文
  • java8流源码Neo4j 演示内容包 Graylog 内容包演示了与 Neo4j 图形数据库集成的高级日志管理用例。 此内容包最适合与 Graylog 2.0 和更新版本中的新随机消息生成器一起使用。 时间段关系 关键关系 依赖关系 具有日志...
  • d3+neo4j查询与展示demo

    2018-11-13 20:58:38
    由于现在网上已有的d3+neo4j的整合资源少之又少,个人大致了解了下很多代码代码例子都是用的测试例子展示而已,甚至有的网上平台的一个学习资源视频就卖到六七百块,在这里先上一个简单demo,实现的是从图数据库查询...
  • 图数据库,Neo4j-Java开发快速指南-第二部分-v1.pdf。
  • 一:获取所有关系的个数 MATCH P=()-->() RETURN COUNT(*) AS COUNT ...java代码中使用的jar包为neo4j-java-driver-1.5.1.jar版本。 Map<String,String> map=new HashMap<String, String>(); try {
  • Neo4j安装

    千次阅读 2018-08-15 23:54:21
    实验环境 实验环境:Win10下vmware虚拟机 ...neo4j安装非常简单,安装好jdk后,把neo4j程序包解压出来修改一个配置,启动即可。 安装JDK 在/usr目录下建立目录/java cd /usr mkdir java 把JDK安装包上...
  • neo4j入门——neo4j安装和简易操作

    千次阅读 2019-07-28 20:40:21
    在安装neo4j之前,需要先确定你的电脑是否已经安装Java程序,如果没有,你可以参考这个安装教程。https://blog.csdn.net/Good_zwn/article/details/87906599 2. neo4j下载 neo4j下载地址: ...
  • Neo4j详解

    万次阅读 多人点赞 2020-02-24 00:30:31
    Neo4j入门详解 项目中某种特殊的场景,使用图形数据库比较有独特的优势。所以经过一个多月的奋战终于把项目上线了。本次使用上了图形数据库是neo4j社区版,因为数据量不到一个亿,只是关系比较复杂所以社区版基本上...
  • springboot+neo4j

    2018-01-24 16:33:36
    连接mysql、neo4j,实现将mysql数据插入neo4j中! 对neo4j数据进行增删改查,统计分析、关系遍历等功能 ! 通过d3对查询数据进行页面展示
  • springboot集成neo4j

    2021-07-05 14:07:28
    1.在neo4j官网下载windows客户端用来测试。下载社区版2 2.配置neo4j环境变量。将你下载的地址填写到环境变量里 3.将neo4j环境变量配置到path里。直接粘贴就可以%NEO4J_HOME%\bin; 4.输入cmd 输入文件路径。...
  • Java代码生成的neo4j数据库,现在要导入到neo4j desktop的项目里。 1)打开neo4j project的管理->Open Folder 2)点击进入data文件夹 3)打开已存在的数据库的文件夹->进入data文件夹 4)将databases和...
  • 课程发布地址 地址:腾讯课堂《Neo4j 图数据库视频教程》...庞国明,《Neo4j权威指南》副主编、《Neo4j 3.x 入门经典》翻译 邮箱:pangguoming@yeah.net QQ:1143815700 Neo4j技术讨论QQ群:...
  • 上手Neo4j

    2019-09-21 23:18:55
    Neo4j是什么 软件安装及常用的配置选项介绍 下载 wget https://neo4j.com/artifact.php?name=neo4j-community-3.5.3-unix.tar.gz 解压: tar -zxvf neo4j-community-3.5.3-unix.tar.gz 解压后进入指定目录 drwxr-xr-x...
  • java端项目http://download.csdn.net/detail/shenshouer/4258869 Flex端依赖工程:http://download.csdn.net/detail/shenshouer/4258884 参考文章:http://blog.csdn.net/shenshouer/article/details/7515380
  • 图形数据库 Neo4j(2) ----Java

    千次阅读 2016-06-23 22:26:19
    Neo4j 是一个高性能的 NoSQL 图形数据库。Neo4j 使用图(graph)相关的概念来描述数据模型,把数据保存为图中的节点以及节点之间的关系。很多应用中数据之间的关系,可以很直接地使用图中节点和关系的概念来建模。...
  • 几十年来,关系数据库一直主导...四种类型的数据存储用于大数据:键/值存储,例如Memcached和Redis面向文档的数据库,如MongoDB,CouchDB和DynamoDB面向列的数据存储,如Cassandra和HBase图形数据库,如Neo4j和Orie...
  • 只遇到一个问题,java1.8版本过低,重新下载一个java11,并修改 /etc/profile 环境变量 这样就安装成功了。 准备数据 运行、导入数据和展示结果是在一起的 数据格式严格按照 A,B,relation 其余的有其他字段也没有...
  • Spring Data Neo4j简介

    千次阅读 2013-11-08 18:56:17
    本文来源于我在InfoQ中文站原创的文章,原文地址是:...它完全支持ACID数据库事务属性,由于其良好的图数据模型设计,Neo4j的速度非常快。对于连接的数据操作,Neo4j的速度要比传统的关系型数据库快1000倍。Spring D
  • springboot集成neo4j图数据库,使用java语言连接数据库mysql和neo4j,实现将mysql数据插入neo4j中。 实现的功能有对neo4j数据进行统计分析、关系遍历增删改查等 。并且使用d3对查询结果数据进行页面展示
  • 课程发布地址 地址:腾讯课堂《Neo4j 图数据库视频教程》...庞国明,《Neo4j权威指南》副主编、《Neo4j 3.x 入门经典》翻译 邮箱:pangguoming@yeah.net QQ:1143815700 Neo4j技术讨论QQ群:547190638 ...
  • neo4j(一).初识图数据库neo4j

    千次阅读 2019-02-26 19:00:22
    neo4j是图数据库 初识neo4j,首先我们要知道neo4j是图数据库。我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢? 1.什么是图数据库 简单来...
  • neo4j :rel 上周,我向我的同事Alistair展示了犯规图表 ,他提出了进行“犯规报仇”查询的想法,以找出哪些球员后来在比赛中因自己的犯规而报仇。 这样的查询非常以路径为中心,因此在图形中效果很好。 回顾一下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,044
精华内容 817
关键字:

java展示neo4j

java 订阅