我正在构建一个长遍历以在一个查询中添加数百个顶点。我从官方网站上看到,推荐的方法是注入对象列表并在那里添加顶点:http://tinkerpop.apache.org/docs/current/recipes/#long-traversals http://tinkerpop.apache.org/docs/current/recipes/#long-traversals
然而,就我而言,有很多对象具有可选字段,以官方文档中的示例为例,可能有人没有“年龄”属性或“名称”属性,我可以使用选择来做某事像这样:
g.inject().unfold().as('a').addV().choose(select('a').select('age'), property('age', select('a').select('age')))
但是 Neptune 中的选择步骤没有优化,这会增加查询的延迟,是否有其他解决方案?
已经在 gremlin-users 邮件列表上回答了,但为了结束循环,这里再次回答:
gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin>
gremlin> data = [["name": "Huimin Yang"],
["name": "Daniel Kuppitz", "age": 37]]
==>[name:Huimin Yang]
==>[name:Daniel Kuppitz,age:37]
gremlin>
gremlin> g.inject(data).unfold().as("m").
addV("person").as("v").
select("m").unfold().as("kv").
select("v").
property(select("kv").by(keys), select("kv").by(values)).iterate()
gremlin>
gremlin> g.V().valueMap()
==>[name:[Huimin Yang]]
==>[name:[Daniel Kuppitz],age:[37]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)