用neo4j[JAVA]发送查询
我是neo4j和graph数据库的新手,我必须发送一个查询来获取一些值 我有food和category节点,这两个节点之间的关系类型由另一个节点指定为 我需要取的是一对食品名称及其类别名称 提前感谢您的帮助。。根据您的示例进行调整后,它将如下所示:用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 );
// 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浏览器中返回了行,但在这些步骤之后迭代器为空。有什么建议吗?无法告诉您迭代器对象有什么问题。仔细检查查询和您的数据。迭代器很可能是空的,因为查询没有返回任何结果。