【发布时间】:2020-10-24 04:09:32
【问题描述】:
我正在学习 Gremlin-Tinkerpop 并尝试使用匹配子句进行查询以检索带有查询的路径。
图表示例:
A : LabelA ----edge["rel1"]-- B1 : LabelB { prop1 : "val1" }
|--edge["rel2"]-- B2 : LabelB { prop1 : "val1" }
|--edge["rel3"]-- B3 : LabelB { prop1 : "val1" }
|--edge["rel4"]-- B4 : LabelB { prop1 : "val2" }
|--edge["rel5"]-- B5 : LabelB { prop1 : "val2" }
检索包括边缘在内的路径很容易。像这样
g.V().hasLabel("LabelA").outE().inV().hasLabel("LabelB").path()
但是.. 使用 MATCH,我无法检索“边缘”
g.V().match(__.as("lba").hasLabel("LabelA").outE().inV().hasLabel("LabelB").as("b")).path()
如何使用 MATCH 检索包括边缘在内的路径? (没有'as')
g.V().match(__.as("lba").hasLabel("LabelA").outE().as("r1").inV().hasLabel("LabelB").as("b")).path()
谢谢。
【问题讨论】:
-
当您说您无法检索边缘时-您的意思是它出现在
path结果中吗?如果是这样,那么在我对 TinkerGraph 的快速测试中,我确实看到了结果中的边缘。您正在使用哪个图形数据库?一般来说,如果我想要返回的是路径,我倾向于避免使用match,因为使用match,路径将包含由步骤执行的完整评估,这通常不是我想要/需要的。 -
没错,匹配的路径结果。 @KelvinLawrence