Java 将基于光标的节点遍历限制到输出边
我正试图使Max de Marzi的理论适应有向图上的一个问题。使用关系和节点游标Java 将基于光标的节点遍历限制到输出边,java,neo4j,Java,Neo4j,我正试图使Max de Marzi的理论适应有向图上的一个问题。使用关系和节点游标 RelationshipTraversalCursor relsCursor=cursors.allocateRelationshipTraversalCursor(); NodeCursor NodeCursor=cursors.allocateNodeCursor(); read.singleNode(startingNode.getId(),nodeCursor); nodeCursor.next(); n
RelationshipTraversalCursor relsCursor=cursors.allocateRelationshipTraversalCursor();
NodeCursor NodeCursor=cursors.allocateNodeCursor();
read.singleNode(startingNode.getId(),nodeCursor);
nodeCursor.next();
nodeCursor.allRelationships(relsCursor);
当(relsCursor.next()){…}到输出边时,我如何限制对关系的迭代
到目前为止,我使用org.neo4j.graphdb.Node
的Iterable getRelationships(Direction var1)
函数实现了这一点,但由于我对内部neo4j Java API的直觉有限,我想比较一下相对性能。这里有一个相关文档中的有用片段,展示了如何确定光标当前关系的方向:
private static String computeKey( ..., RelationshipTraversalCursor r )
{
Direction d;
if ( r.sourceNodeReference() == r.targetNodeReference() )
{
d = Direction.BOTH;
}
else if ( r.sourceNodeReference() == r.originNodeReference() )
{
d = Direction.OUTGOING;
}
else
{
d = Direction.INCOMING;
}
.
.
.
}
所以,像这样的东西应该适合你:
while (relsCursor.next()) {
if (relsCursor.sourceNodeReference() == relsCursor.originNodeReference()) {
// Do OUTGOING relationship processing
}
}