gpt4 book ai didi

java - Tinkerpop 遍历中不匹配

转载 作者:行者123 更新时间:2023-11-30 06:32:33 24 4
gpt4 key购买 nike

我想匹配所有 b1,其中不存在节点 b2 ,如下所示。 enter image description here这是某种 2 跳不对称性。请注意,不存在 b2 必须链接到与 b1 相同的 c:C,因此其他 >(a2) --> (b3) --> (a1) 可以被忽略,只要 b3c:C 没有优势。

我尝试了以下...

graph.traversal().V()
.match(
as("c").hasLabel("C"),

as("a").hasLabel("A")
.out().hasLabel("B").as("b1")
.where(out().as("c"))
.out().hasLabel("A").as("a2"),

not(
as("a2")
.out().hasLabel("B").as("b2")
.where(out().as("c")
.out().as("a1")
)
)

...但是第二个 MATCH 步骤抛出异常:

java.lang.IllegalStateException: The provided match pattern is unsolvable: [[MatchStartStep(a1), HasStep([~label.eq(A)]), VertexStep(OUT,vertex), HasStep([~label.eq(B)]), WhereTraversalStep([WhereStartStep, VertexStep(OUT,vertex), WhereEndStep(c)])@[b1], VertexStep(OUT,vertex), HasStep([~label.eq(A)]), MatchEndStep(a2)], [MatchStartStep(a2), HasStep([~label.eq(B)]), WhereTraversalStep([NotStep([WhereStartStep, VertexStep(OUT,edge)])]), WhereTraversalStep([WhereStartStep, VertexStep(OUT,vertex)@[c], VertexStep(OUT,vertex), WhereEndStep(a1)])@[b2], MatchEndStep, MatchEndStep]]

不幸的是,我什至无法匹配这是 Cypher。

最佳答案

突然,我找到了一个避免范围问题的解决方案:

graph.traversal().V()
as("a").hasLabel("A")
.out().hasLabel("B").as("b1")
.where(out().hasLabel("C"))
.out().hasLabel("A").as("a2")
.where(
not(
out().hasLabel("B")
.where(out().hasLabel("C"))
.out().as("a")
)
)

关于java - Tinkerpop 遍历中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45795384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com