使用加权关系查找节点的最近邻居

时间:2015-09-23 22:05:19

标签: neo4j tags cypher relationship

我无法找到与关系相关的所有权重的总和。如果我有一个图表,并且每个节点之间的距离都有一个称为权重的属性,那么我想找到所有节点并按关系权重排序。

编辑:增加与第二行的关系

MATCH (album:Album)-[relationship]-(tags:Word)
WITH album, COLLECT(tags) as tags, relationship
WHERE ALL (v IN ["alpha", "bravo"] WHERE v IN EXTRACT(n in tags | n.name))
RETURN album,tags, relationship.weight as DISTANCE ORDER BY DISTANCE ASC LIMIT 15;

为什么我收到错误?当我删除关系时它工作得很好,但是当我添加它时它会说'关系未定义'。我想'ORDER BY relationship DESC LIMIT 25'。我主要是努力实现关系属性,所以我可以创建一个加权图。感谢您的建议和考虑建议。

1 个答案:

答案 0 :(得分:3)

因为查询的第二部分只知道您在WITH子句中告诉它的内容。在该子句中,您可以为标识符albumtags命名,但不要将relationship命名为。所以当回归的时候,没有relationship这样的东西。

尝试将, relationship添加到您的WITH子句中,以便将其添加到查询的第二部分。

此外,请考虑保持对cypher查询的构造大写的一致性 - 具体而言,如果您将WITHWHEREALL大写,请执行大写match和{ {1}}。这与您的查询的实现方式无关,但如果我们遵守约定,它可以帮助我们推理查询。