【发布时间】:2021-09-28 22:28:51
【问题描述】:
我正在跟进这两个问题 --
gremlin intersection operation
JanusGraph Gremlin graph traversal with `as` and `select` provides unexpected result
我正在集中查看 StackOverflow(想感谢社区!)但不幸的是我没有发布/写很多东西,所以我什至没有足够的声誉来发表评论上面的帖子...所以我在这里问我的问题..
在上面的第二篇文章中,Hieu 和我一起工作,我想提供更多关于这个问题的背景信息。
正如斯蒂芬在评论中所问(对于第二篇文章),我想在中间链接V() 的原因仅仅是因为我想从头开始遍历,即整个图的每个节点就像 g.V() 所做的一样,它出现在 gremlin documentation 中大多数查询的开头。
多一点说明:假设我需要对结果进行 2 个条件过滤器。基本上我想写
g.V().(Condition-A).as('setA')
.V().(Condition-B).as('setB')
select('setA').
where('setA',eq('setB'))
它借用了斯蒂芬在第一篇文章中的回答的最后一个答案。这里Condition-A 和Condition-B 只是不同过滤步骤的链接,例如has 或hasLabel 等。
中间.V()的地方应该写什么?或者有没有其他方法可以编写查询,使Condition-B 完全独立于Condition-A?
最后,我在https://tinkerpop.apache.org/docs/3.5.0/reference/#graph-step 的查询中间阅读了链接V() 的部分。我仍然无法完全理解第二篇文章的奇怪后果,也许我应该阅读更多关于遍历器如何工作的内容?
再次感谢 Kelvin 和 Stephen。很高兴也很高兴能与为 gremlin 写书/编写源代码的您联系。
【问题讨论】:
标签: gremlin tinkerpop janusgraph