Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用neo4j[JAVA]发送查询_Java_Neo4j - Fatal编程技术网

用neo4j[JAVA]发送查询

用neo4j[JAVA]发送查询,java,neo4j,Java,Neo4j,我是neo4j和graph数据库的新手,我必须发送一个查询来获取一些值 我有food和category节点,这两个节点之间的关系类型由另一个节点指定为 我需要取的是一对食品名称及其类别名称 提前感谢您的帮助。。根据您的示例进行调整后,它将如下所示: // Create a new graph DB at path DB_PATH GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );

我是neo4j和graph数据库的新手,我必须发送一个查询来获取一些值

我有foodcategory节点,这两个节点之间的关系类型由另一个节点指定为

我需要取的是一对食品名称及其类别名称

提前感谢您的帮助。

。根据您的示例进行调整后,它将如下所示:

// Create a new graph DB at path DB_PATH
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );

// Create a new execution engine for running queries.
ExecutionEngine engine = new ExecutionEngine( db );

ExecutionResult result;

// Queries need to be run inside of transactions...
try ( Transaction ignored = db.beginTx() )
{
    String query = "MATCH (f:food)-[:categorized_as]->(c:category) RETURN f.food_name as foodName, c.category_name as categoryName";

    // Run that query we just defined.
    result = engine.execute(query);

    // Pull out the "foodNames" column from the result indicated by the query.
    Iterator<String> foodNames = result.columnAs( "foodName" );
    // Iterate through foodNames...
}
//在路径DB\u path处创建一个新的图形DB
GraphDatabaseService db=new GraphDatabaseFactory().newEmbeddedDatabase(db_路径);
//为运行查询创建新的执行引擎。
ExecutionEngine=新ExecutionEngine(db);
执行结果;
//查询需要在事务内部运行。。。
try(事务被忽略=db.beginTx())
{
String query=“MATCH(f:food)-[:categorized\u as]->(c:category)返回f.food\u name作为foodName,c.category\u name作为categoryName”;
//运行我们刚才定义的查询。
结果=engine.execute(查询);
//从查询指示的结果中拉出“foodNames”列。
迭代器foodNames=result.columnAs(“foodName”);
//在foodNames中迭代。。。
}

pro提示:不要为每个查询创建新的
ExecutionEngine
。相反,executionEngine应该像一个单例,实例化并在所有地方重用。查询计划缓存与引擎相关联,因此重新创建它会强制反复计算查询计划。同意,但OP似乎是新的,而且我认为没有考虑基本文档,因此我希望提供足够有用的脚手架,而不仅仅是执行查询的位。感谢快速帮助。我使用了你提到的方法,但是在迭代器对象中没有得到任何东西。查询在neo4j浏览器中返回了行,但在这些步骤之后迭代器为空。有什么建议吗?无法告诉您迭代器对象有什么问题。仔细检查查询和您的数据。迭代器很可能是空的,因为查询没有返回任何结果。