Neo4j双向横向侧选择器最大深度
我有一个密集连接的巨大图,我一直在尝试使用Neo4j的双向遍历框架来高效地发现两个节点之间的路径。如果有人能解释maxDepth在sideSelector方法中扮演的角色,我将不胜感激。我能找到的唯一解释是javadoc,它对我来说非常模糊。 javadoc中的描述:maxDepth-侧选择器的可选最大深度参数。为什么最大深度是侧选择器关注的问题?因为它已经知道了在任何给定点的遍历的两边 深度知识对侧选择器有何影响 我当前的代码如下所示:Neo4j双向横向侧选择器最大深度,neo4j,graph-traversal,Neo4j,Graph Traversal,我有一个密集连接的巨大图,我一直在尝试使用Neo4j的双向遍历框架来高效地发现两个节点之间的路径。如果有人能解释maxDepth在sideSelector方法中扮演的角色,我将不胜感激。我能找到的唯一解释是javadoc,它对我来说非常模糊。 javadoc中的描述:maxDepth-侧选择器的可选最大深度参数。为什么最大深度是侧选择器关注的问题?因为它已经知道了在任何给定点的遍历的两边 深度知识对侧选择器有何影响 我当前的代码如下所示: BidirectionalTravers
BidirectionalTraversalDescription description = graphDb.bidirectionalTraversalDescription().
startSide(graphDb.traversalDescription()
.depthFirst()
.uniqueness(Uniqueness.NODE_PATH)
.expand(new RelsPathExpander(xxxx))
.evaluator(Evaluators.toDepth(3))).
endSide(graphDb.traversalDescription()
.depthFirst()
.uniqueness(Uniqueness.NODE_PATH)
.expand(new RelsPathExpander(xxxx))
.evaluator(Evaluators.toDepth(3)))
.collisionEvaluator(new Evaluator() {
@Override
public Evaluation evaluate(Path path) {
return Evaluation.INCLUDE_AND_CONTINUE;
}
}).sideSelector(SideSelectorPolicies.LEVEL, 100);
谢谢 作为《遍历框架》部分内容的作者,我想我记得这是一个场景,在这个场景中,双方没有指定各自的最大深度,而是在侧选择器中有一个最大深度。这允许更动态的遍历,其中一方可以比另一方深入得多,比如说,如果一方要遍历的关系比另一方少的话。这种深度倾斜允许在以下情况下进行遍历:与双方以相同速率下降相比,遍历可以完成的关系更少。使用此功能 在您的情况下,您应该能够将其设置得足够高,以容纳双方