0

私はうまく機能している 2 つの部分の 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 に答える