1

我正在使用 neo4j-rest-graphdb,只是尝试使用 Cypher 来获取简单的 Node 结果。

CypherParser parser = new CypherParser();
ExecutionEngine engine = new ExecutionEngine(graphDbService);

Query query = parser.parse( "START referenceNode = node (0) " +
                            "MATCH referenceNode-[PRODUCTS_REFERENCE]->products-[PRODUCT]->product " +
                            "RETURN product.productName " +
                            "ORDER BY product.productId " +
                            "SKIP 20"
                            "LIMIT 10");
 ExecutionResult result = engine.execute( query );

 Iterator<Map<String, Object>> iterator = result.javaIterator();

迭代结果的最佳实践是什么?最后一行导致我的服务挂起约 6 秒。最后没有迭代器,应用程序很快就会安静下来。我还尝试了 webadmin 密码终端,结果在 50 毫秒内获取。难道我做错了什么?

4

2 回答 2

5

在您的情况下,所有密码操作(图形匹配,过滤等)都会通过非常健谈和缓慢的线路)您不希望这样!

neo4j-rest-graphdb 支持开箱即用的 cypher 远程执行:

只需执行此测试用例中所示的操作:

    RestCypherQueryEngine queryEngine = new RestCypherQueryEngine(restGraphDatabase.getRestAPI());      
    final String queryString = "start n=node({reference}) return n";
    Map params = MapUtil.map("reference",0);
    final Node result = (Node) queryEngine.query(queryString, params).to(Node.class).single();
    assertEquals(restGraphDatabase.getReferenceNode(), result);
于 2011-11-23T10:13:59.537 回答
0

如果我理解正确,graphDbService 是一个 REST 图形数据库,对吗?

如果你想在服务器上使用 Cypher,你应该使用 CypherPlugin。看这里:http ://docs.neo4j.org/chunked/snapshot/cypher-plugin.html

我希望这有帮助,

安德烈斯

于 2011-11-23T08:53:05.000 回答