【发布时间】:2013-03-06 16:50:03
【问题描述】:
我对 Neo4J 概念非常陌生。 如果有任何方法,我想知道如何在以 graphdb 格式部署特定节点后列出连接到特定节点的所有可能节点。 简而言之,我已经能够导入以制表符分隔的 .csv 现在我想知道是否可以列出任何特定节点的所有邻居,其 id 可以作为参数传递。
【问题讨论】:
我对 Neo4J 概念非常陌生。 如果有任何方法,我想知道如何在以 graphdb 格式部署特定节点后列出连接到特定节点的所有可能节点。 简而言之,我已经能够导入以制表符分隔的 .csv 现在我想知道是否可以列出任何特定节点的所有邻居,其 id 可以作为参数传递。
【问题讨论】:
您可以通过多种方式做到这一点。其中之一是使用如下 Cypher 语句:
START n=node({nodeId}) MATCH n-[*1..1]-m RETURN m;
如果您使用的是 Java,则可以按如下方式使用遍历 API:
for (final Path position : Traversal.description()
.evaluator(Evaluators.fromDepth(1))
.evaluator(Evaluators.toDepth(1))
.evaluator(Evaluators.excludeStartPosition()).traverse(yourStartNode)) {
System.out.println(position.endNode());
}
【讨论】:
n-[*1..1]-m。只需使用n--m。
我会在 tstorms 中添加一个回答集合,因此您将在一行中获得所有节点 + 邻居集合:
START n=node({nodeId}) MATCH n--m RETURN n,collect(m);
或对于所有节点及其邻居:
START n=node(*) MATCH n--m RETURN n,collect(m) order by Id(n);
【讨论】: