【发布时间】:2020-08-07 23:56:49
【问题描述】:
从节点 1 开始,我想在任何出站边之后的 n 跳内返回所有路径(边和顶点,带有 id/label/properties),或者在带有属性谓词 (p > 50) 的入站边之后返回。
理想情况下,路径不应包含任何循环,因此路径不应包含两次相同的节点。
属性 p 并不存在于每条边上。
g.addV().property(id, 1).as('1').
addV().property(id, 2).as('2').
addV().property(id, 3).as('3').
addV().property(id, 4).as('4').
addV().property(id, 5).as('5').
addV().property(id, 6).as('6').
addV().property(id, 7).as('7').
addV().property(id, 8).as('8').
addE('pointsAt').from('1').to('2').
addE('pointsAt').from('3').to('1').
addE('pointsAt').from('4').to('1').property('p', 10).
addE('pointsAt').from('5').to('1').property('p', 100).
addE('pointsAt').from('2').to('6').
addE('pointsAt').from('7').to('2').
addE('pointsAt').from('8').to('2').property('p', 100).
iterate()
假设我们从顶点 1 开始,路径将如下所示:
1>2
1>2>6
1>2>8
1>5
- 1-2 被包含,因为它是出站的
- 1-3 被排除在外,因为它是入站到 1 并且没有 p
- 1-4 被排除,因为它是入站且 (p > 50) 为假
- 1-5 被包含,因为它是入站的并且 (p > 50) 为真
- 2-6 被包含,因为它是出站的
- 2-7 被排除在外,因为它是入站到 2 并且没有 p
- 2-8 被包含,因为它是入站到 2 并且 p > 50
我已经尝试了许多不同的方法,但我似乎无法得到任何接近我正在寻找的东西。
【问题讨论】:
标签: gremlin tinkerpop amazon-neptune