基本Gremlin:查找节点属性?

Ric*_*ard 3 gremlin

初学者格雷姆林问题.我想使用属性名称从图中检索节点,然后打印其所有附加属性.

这就是我正在尝试的:

println g.v(20020000001901003)
Run Code Online (Sandbox Code Playgroud)

这让我无效.当我尝试这个:

println g.idx('mygraph')[[id:20020000001901003]]
Run Code Online (Sandbox Code Playgroud)

输出是[StartPipe].

如何从StartPipe节点的属性中获取?

谢谢!

ste*_*tte 6

以下是Gremlin终端使用玩具图和TinkerPop 2.x的一些示例(下面是3.x说明).以下控制台会话显示如何创建密钥索引并在其上进行搜索.

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.createKeyIndex("name",Vertex.class)
==>null
gremlin> g.V("name","marko").name
==>marko
gremlin> g.V("name","marko").map
==>{age=29, name=marko}
Run Code Online (Sandbox Code Playgroud)

您应该注意,原因g.v(20020000001901003)为您返回null是因为该函数尝试根据图中元素的唯一标识符查找顶点,而不是您指定的标识符(很少有图形支持用户分配ID ...他们通常生成自己的).考虑以下我正在使用分配的标识符来访问顶点:

gremlin> g.V("name","marko")
==>v[1]
gremlin> g.v(1).map
==>{age=29, name=marko}
Run Code Online (Sandbox Code Playgroud)

如果您已创建手动索引,那么您将使用您正在引用的g.idx语法.这是一个例子:

gremlin> idx = g.createIndex("my-index",Vertex.class)
==>index[my-index:Vertex]
gremlin> idx.put("id", 1000, g.v(1))
==>null
gremlin> g.idx("my-index")[[id:1000]]
==>v[1]
Run Code Online (Sandbox Code Playgroud)

我假设您没有使用Gremlin终端,因此您需要迭代该启动管道.你可以做一些事情,比如把它发送到List:

gremlin> x=[];g.idx("my-index")[[id:1000]].fill(x)
==>v[1]
gremlin> x.size()
==>1
Run Code Online (Sandbox Code Playgroud)

TinkerPop 3.x中,没有TinkerPop对索引的抽象.您必须使用基础图数据库规定的索引创建方法.例如,在neo4j中,您将使用一些Cypher语法.使用TinkerGraph,只有一种createIndex()方法.你可以看到它的用法如下:

gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> graph.createIndex('name',Vertex.class)
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.addV('name','stephen')
==>v[0]
gremlin> g.addV('name','steve')
==>v[2]
gremlin> g.V().has('name','stephen')
==>v[0]
Run Code Online (Sandbox Code Playgroud)

请注意,在使用上面的最后一行进行查找时,从Gremlin的角度来看,没有明确的语法可以使用"name"上的索引.TinkerGraph自动检测has()密钥的使用,并且密钥是"name",然后它使用索引.如果它没有找到"name"的索引,它将对顶点进行全扫描以找到"stephen".所有TinkerPop实现都有类似的策略来执行这些类型的索引查找.