2012-06-06 64 views
0

的量最少,我有以下数据:不超过的Neo4j返回不同的节点跳数

START n = node(A, B) 
MATCH p = n-[*..2]-(x) 
RETURN n.Name, x.Name, length(p) 

与2个输入节点开始,运行到其他节点:

A --> B 
B --> C 

考虑此查询2跳。

下返回:

==> +------------------------------------------------+ 
==> | n.Name  | x.Name    | length(p) | 
==> +------------------------------------------------+ 
==> | "A"   | "C"     | 2   | 
==> | "B"   | "C"     | 1   | 

背景故事:在我的应用程序,你可以搜索的兴趣(多在同一时间)。每个兴趣都可以有相关的兴趣。有时候,投入的利益分享共同的利益,导致利益重复。

+0

我正在搜索和搜索,但我在这里找不到问题。请帮助我 - 你想达到什么目的?你在寻找两个节点之间的最短路径吗? – Andres

回答

0

看起来简单的调用MIN做什么我在寻找:

RETURN x.Name, min(length(p)) 

所以它会按x.Name并采取最小跳列。

http://docs.neo4j.org/chunked/stable/query-aggregation.html

聚集可以在所有的匹配子图来完成,或者它可以是 通过引入键值进一步划分。这些非聚合 表达式,用于将进入 聚合函数的值分组。

+0

不错!随意到博客。 –