Neo4j BFS 在具有给定标签的节点上
Neo4j BFS over nodes with a given label
在 Neo4j 上,我以编程方式 运行 BFS 如下:
public Traverser runBFSPaths(Node startNode) {
TraversalDescription myTraversal = graphDb.traversalDescription()
.breadthFirst()
.relationships(relationshipType)
.evaluator(Evaluators.excludeStartPosition());
return myTraversal.traverse(startNode);
}
如果我有多个节点标签(NodeType),我怎样才能将上面的 BFS 限制为一个节点类型(不使用 Cypher)?或者用 Cypher 表达更容易?
您可能需要查看 APOC 程序中的 path expander procedures。这些默认使用 bfs 扩展,并允许您为白名单、黑名单或您感兴趣的终端节点指定节点标签。您还可以指定用于扩展的关系。
在 Neo4j 上,我以编程方式 运行 BFS 如下:
public Traverser runBFSPaths(Node startNode) {
TraversalDescription myTraversal = graphDb.traversalDescription()
.breadthFirst()
.relationships(relationshipType)
.evaluator(Evaluators.excludeStartPosition());
return myTraversal.traverse(startNode);
}
如果我有多个节点标签(NodeType),我怎样才能将上面的 BFS 限制为一个节点类型(不使用 Cypher)?或者用 Cypher 表达更容易?
您可能需要查看 APOC 程序中的 path expander procedures。这些默认使用 bfs 扩展,并允许您为白名单、黑名单或您感兴趣的终端节点指定节点标签。您还可以指定用于扩展的关系。