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 扩展,并允许您为白名单、黑名单或您感兴趣的终端节点指定节点标签。您还可以指定用于扩展的关系。