获取边数等于2的顶点的Gremlin查询

4

假设我有5个顶点,分别是v1到v5,它们之间相互连接。结构如下:

v1->v2
v1->v3
v4->v2
v2->v1
v2->v3
v3->v5
v5->v1

现在我希望编写一条Gremlin查询,以显示具有出边为2的顶点。
例如,v1向v2和v3分别有2条出边,因此查询应显示v1、v2和v3。
1个回答

6
有几种方法可以实现这一点。您可以只获取所有节点,而不需要任何关于它们来自哪里的信息。 g.V().where(out().count().is(2)).union(identity(), out()) 这将返回:
==>v[1]
==>v[2]
==>v[3]

或者你可以获取所有指向外部边缘的路径。这将使您能够显示具有2个出度计数的路径。

g.V().where(out().count().is(2)).out().path()

这将会给你

==>[v[1], v[2]]
==>[v[1], v[3]]

请记住,随着您的图形增长,访问图形中的每个顶点,它将变得越来越慢。

为了以后参考,您应该展示您已经尝试过的示例和期望的输出。这会更容易帮助您得到帮助。


谢谢回复我的问题。我正在寻找关于Gremlin的文档或书籍,但是没有找到合适的。您能否推荐一本好的Gremlin文档或书籍给我? - Arundhathi D
@ArundhathiD http://tinkerpop.apache.org/docs/current/reference/是最新的,但Titan已经过时了,因为它不再得到维护。我相信http://tinkerpop.apache.org/docs/3.0.1-SNAPSHOT/是Titan所使用的版本。我建议查看http://janusgraph.org,它接手了Titan的工作,并使用了更先进的Tinkerpop。当前版本向后兼容Titan。如果您已经熟悉SQL,那么http://sql2gremlin.com是一个非常好的教程。 - pantalohnes
我有一个包含6个节点的图,其中大约有4个节点之间有多条边。假设我的图节点是a、b、c、d、e、f,边是a-b、a-b、a-b、c-d、b-d、e-f、e-f。我想要一个查询,它将返回顶点a、b以及多条边a-b、a-b,同样它也应该返回顶点e、f和边e-f、e-f。 - Arundhathi D
你能帮我找出这个查询吗? - Arundhathi D
请创建一个单独的问题。您应该包括您已经尝试过的查询。 - pantalohnes
问题已经存在。下面是我的问题名称:gremlin查询以获取两个特定顶点之间的多个边缘。 - Arundhathi D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接