首页> 疑难解答
基本Gremlin:查找节点属性?
withpy
2022-01-08
简介初学者格雷姆林问题。 我想使用属性名称从图中检索节点,然后打印其所有附加属性。 这就是我正在尝试的: 这让我无效。 当我尝试这个: 输出是 StartPipe 。 如何从StartPipe进入节点的属性 谢谢
初学者格雷姆林问题。 我想使用属性名称从图中检索节点,然后打印其所有附加属性。
这就是我正在尝试的:
println g.v(20020000001901003)
这让我无效。 当我尝试这个:
println g.idx('mygraph')[[id:20020000001901003]]
输出是[StartPipe]
。
如何从StartPipe
进入节点的属性?
谢谢!
以下是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}
您应该注意, gv(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终端,因此您需要迭代该启动管道。 你可以做一些事情,比如把它发送到List:
gremlin> x=[];g.idx("my-index")[[id:1000]].fill(x)
==>v[1]
gremlin> x.size()
==>1
在 ,没有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的角度来看,没有明确的语法可以使用“name”上的索引。 TinkerGraph自动检测has()
的使用,并且密钥是“name”,然后它使用索引。 如果它没有找到“name”的索引,它将对顶点进行全扫描以找到“stephen”。 所有TinkerPop实现都有类似的 来执行这些类型的索引查找。
相关文章
-
如何在动态创建的Html表中设置THEAD的CssClass属性
我正在使用Bootstrap 4,如果我像这样使用它,我可以使用表头的特殊样式:
-
通过道具React将WS连接传递给子节点
我在后端PHP服务器上使用Ratchet来运行我的websocket,我使用React作为前端。我打开了socket,我可以通过JS连接而没有问题。我遇到的问题是我......
-
m3u8文件可以有mp4文件网址吗?
我的情况是我将我的flv视频转换为mp4然后我使用我的nginx服务器将其作为http url流式传输。对于html5上的多比特率支持,我创建了一个像这样的m3u8文件:...
-
嵌套DispatchQueue.main.async
我在VC调用的函数中显示警报。我不希望主VC被阻止。我在异步中调用此警报功能。该函数又有另一个异步。这是好习惯还是我...
-
如何在Django中使用用户的unique_id和令牌发送url?
我为大学创建了一个Django应用程序(“监考管理系统”)。我没有包含任何登录授权,因为它只会被大学管理员使用。在这个应用程序中,我还有一个任务,我......
-
使用单击的字体真棒排序图标
我是新来的。在这里,我使用字体很棒的排序图标。 Technology props.sortAscending(event,'technology'...