0

我正在运行表现良好的两部分 Neo4j 搜索。但是,ExecutionResult 集的实际解析比 Cypher 查询花费的时间长 8 或 10 倍。我正在循环执行 ExecutionResult 映射,如下所示:

result = engine.execute("START facility=node({id}), service=node({serviceIds}) WHERE    facility-->service RETURN facility.name as facilityName, service.name as serviceName", cypherParams);

for ( Map<String, Object> row : result )
{           
    sb.append((String) row.get("facilityName")+" : " + (String) row.get("serviceName") + "<BR/>" );
}

有什么建议可以加快速度吗?谢谢

4

1 回答 1

1

您需要访问实体还是使用节点就足够了(从而使用核心 API)?在后一种情况下,您可以使用比 Cypher 更快的遍历 API。

我不确定你的用例是什么,但根据场景,你可能会做这样的事情:

   for (final Path position : Traversal.description().depthFirst()
       .relationships(YOUR_RELATION_TYPE, Direction.INCOMING)
       .uniqueness(Uniqueness.NODE_RECENT)
       .evaluator(Evaluators.toDepth(1)
       .traverse(facilityNode,serviceNode)) {
        // do something like e.g. position.endNode().getProperty("name")
    }
于 2013-02-12T10:04:03.800 回答