gpt4 book ai didi

gremlin - 基本 Gremlin : look up node properties?

转载 作者:行者123 更新时间:2023-12-01 10:58:20 25 4
gpt4 key购买 nike

初学者 Gremlin 问题。我想使用属性名称从图中检索一个节点,然后打印其所有附加属性。

这就是我正在尝试的:

println g.v(20020000001901003)

这给了我 null。当我尝试这个时:

println g.idx('mygraph')[[id:20020000001901003]]

输出是[StartPipe]

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

谢谢!

最佳答案

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

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}

你应该注意到 g.v(20020000001901003) 为你返回 null 的原因是因为该函数试图根据图中元素的唯一标识符查找顶点,而不是你分配的标识符(很少有图表支持用户分配 id……它们通常会生成自己的)。考虑以下我使用分配的标识符访问顶点的地方:

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

如果您创建了手动索引,那么您将使用您所引用的 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]

我假设您没有使用 Gremlin 终端,因此您需要迭代该启动管道。你可能会做一些事情,比如将它发送到一个列表:

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

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]

请注意,在使用上面的最后一行进行查找时,从 Gremlin 的角度来看,没有明确的语法可以使用“名称”上的索引。 TinkerGraph 自动检测 has() 的使用以及键是“name”,然后它使用索引。如果它没有找到“name”的索引,它将对顶点进行全面扫描以找到“stephen”。所有 TinkerPop 实现都将具有类似的 strategies用于进行这些类型的索引查找。

关于gremlin - 基本 Gremlin : look up node properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480278/

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