根据关系属性对节点进行排序/过滤

zsq*_*are 9 neo4j gremlin

给出以下图表:

在此输入图像描述

  1. 如何获取node[5]与之相邻的节点weight > 50
  2. 如何获得node[5]与标签相邻的节点"knows",按重量排序?

Jos*_*ell 12

不确定Gremlin,但在Cypher中它是:

1:

START s=node(5) MATCH s-[r]-f WHERE r.weight > 50 RETURN f
Run Code Online (Sandbox Code Playgroud)

2:

START s=node(5) MATCH s-[r:knows]-f RETURN f ORDER BY r.weight
Run Code Online (Sandbox Code Playgroud)

如果你关心关系的方向,就在关系上加上箭头,比如"s - [] - > f"或"s < - [] - f"


ami*_*che 10

  1. 如何使用带有"已知"标签且权重> 50的边缘将节点链接到节点[5]?

    gv(5).outE('knows').filter {it.weight> 50} .inV

根据关系/边缘方向,它可能是"inE"而不是outE或"both"步骤,那么您将需要调整查询,因为您将在另一个方向上具有边缘或在两个方向上具有边缘...

  1. 如何获取与节点[5]相关的节点标签为"knows",按重量排序?

    gv(5).outE('knows').filter {it.weight> 50} .sort {a,b - > a.weight <=> b.weight} .toList()._.inV

  • 您使用的是什么版本的Neo4j和Gremlin?你在那里找回了一个List,你可能需要在使用_()之前把它变成一个管道,然后再用它来处理它. (2认同)