如何解决clojure Ogre 添加顶点
我正在使用 Clojure/Ogre 在 Tinkergraph 中添加顶点。由于我对这项技术很陌生,我想我可能错过了一些东西。
这是我尝试过的:
(def graph (open-graph {(graph/GRAPH) (.getName org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph)}))
(def g (traversal graph))
(traverse g (add-V :person) (property :name "Dave"))
在这些步骤之后,当我输入“graph”时,我看到没有添加顶点 - 输出是这样的:
#object[org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph 0x710f92c7 "tinkergraph[vertices:0 edge:0]"]
我想很简单的步骤被遗漏了或者什么,但无法弄清楚。
非常感谢您的时间。期待解决方案
非常感谢斯蒂芬!如果你不介意的话,我还有一个问题。 根据您的评论,我添加了以下代码:
(def dave (traverse g (add-V :person) (property :name "Dave") (iterate!)))
(def josh (traverse g (add-V :person) (property :name "Josh") (iterate!)))
在此之后,现在我想在 dave 和 josh 之间添加一条边。 我试过了:
(traverse g V (add-E :friends) (from dave) (to ted) (iterate!))
返回错误。 我又在这里错过了什么吗? 提前致谢!
解决方法
不管你使用什么编程语言,你总是需要iterate your traversal。换句话说,您需要一个遍历终止步骤,如 iterate()
、`toList() 等。请参阅 Ogre documentation 以获取“遍历”部分中这些的列表,但基本上您只需要做这样的事情:
(traverse g (add-V :person) (property :name "Dave") (iterate!))
请注意,iterate!
不会返回遍历的结果。它只是消耗它。如果您需要遍历的结果,那么您需要查看其他终结器步骤。在您希望拥有 Vertex
对象的特定情况下,您可能会使用 next!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。