代码之家  ›  专栏  ›  技术社区  ›  Rob

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

  •  1
  • Rob  · 技术社区  · 10 年前

    我很难找到与关系相关的所有权重的总和。如果我有一个图,每个节点之间的距离有一个称为权重的属性,假设我想找到所有节点并按关系权重排序。

    编辑:添加到第二行的关系

    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;
    

    为什么我会在这方面出错?当我删除关系时,它工作得很好,但当我添加这个时,它会说“关系未定义”。我想“按关系排序DESC LIMIT 25”。我主要致力于实现关系属性,以便创建一个加权图。感谢您的建议和考虑。

    1 回复  |  直到 5 年前
        1
  •  3
  •   jjaderberg    10 年前

    因为查询的第二部分只知道您在 WITH 条款在该子句中,您可以命名标识符 album tags ,但你不知道名字 relationship 因此,当回归的时候,没有 关系 .

    尝试添加 , relationship 到您的 具有 子句将其也带入查询的第二部分。

    此外,如果您将密码查询的结构大写,请考虑保持一致 具有 , WHERE ALL ,请大写 match return 。这与查询的实现方式无关,但如果我们遵守约定,这有助于我们推理查询。