当前位置: 首页 > 知识库问答 >
问题:

在Gremlin中返回一个'graph ml'子图和一个来自1遍历的集合

斜高翰
2023-03-14

我有一个Gremlin遍历,看起来像这样:

g.V().hasLabel("Firma").has("cui","2816464") 
..........subgraph('sub') ......otherV() ...?????....

如果我想得到顶点属性的集合,我将用下面的语句结束遍历:

 "values('prop')"

如果我想将子图保存为“graphml”格式,我将用以下语句结束遍历:

 cap('sub').next().io(IoCore.graphml()).writeGraph('/tmp/a2.xml')

如何在一次遍历中实现两者,并在将子图保存为 Graphml 格式的同时获取顶点属性的集合?

共有1个答案

滕项明
2023-03-14

我假设您希望返回GraphML,而不是将其存储在服务器上,所以我相应地写了这个答案。如果您使用Java,您可以这样做:

gremlin> g.V().hasLabel('person').
......1>   outE().
......2>   subgraph('sub').
......3>   inV().
......4>   values('name').as('props').
......5>   union(cap('sub'),select('props').fold())
==>tinkergraph[vertices:6 edges:6]
==>[lop,lop,lop,vadas,josh,ripple]

然后在客户端生成GraphML。如果你没有使用Java,我想你会提交这样一个脚本:

t = g.V().hasLabel('person').
  outE().
  subgraph('sub').
  inV().
  values('name').store('props').
  cap('sub')
result = []
result << t.next()..... // write graph to GraphML string to place in result
result << t.getSideEffects().get('props')
 类似资料:
  • 问题内容: 说我有一个数组。如何一次迭代两个? 问题答案: 您可以使用称为stride(to :, by :)的进度循环,每n个元素对元素进行一次迭代: Xcode 8.3.2•Swift 3.1

  • 问题内容: 我想知道是否有这样一种方法来遍历java中每个循环的扩展扩展的多个集合。 所以像这样: 谢谢 问题答案: 您可以使用Guava的:

  • 编辑:在@Prashant回答后,我明白我的输出顺序需要保留,因此我相应地编辑了我的原始问题并重新发布。 我想从根节点(2)遍历到叶节点(1、6、8、3、11和12)。在这种遍历过程中,我希望获取连接到产品节点13(即)的节点,我希望编写一个返回1、8、9、3、11和12的查询。 @Prashant的回答: 输出 然而,我所需输出的顺序是1、8、9、3、11和12,即在每个级别上,要求选择一个子节

  • 我有一个任务,我需要一些方法的帮助。 所以我有一棵这样的树: 而我的方法是: 讲师给出了树的一个简单实现。这个类叫做BinaryTree,如果您想让一个节点链接到它,那么您可以指定右子BinaryTree节点和左子BinaryTree节点。 一个节点有两个链接(一个指向左边,另一个指向右边的子节点),没有指向头部的链接。 因此,使用当前的方法,我能够成功地进行预购遍历,我通过编写存储在节点中的元素

  • 我有一个顶点上插工作和一个边缘上插工作在2个单独的遍历中。是否可以将2合并为1遍历?我尝试过,但收到错误。 a=自身g.V()。has('account',id',account-111111111').fold().coalesce(.unfold(),.addV('account').property(T.id,'account-111111111'))。has('customer','id'

  • 我正在MST上的CLRS中尝试ch23,这里有一个问题: 给定一个图G和一个最小生成树T,假设我们减少不在T中的一条边的权重。给出了在修改图中求最小生成树的算法。 我找到的一个解决方案是在中添加此新更改的边,然后在T中创建一个简单的循环,遍历此循环并删除此循环中的最大权重边,瞧,找到了新更新的MST! 我的问题是,如何在这个简单循环中只遍历节点?因为如果我在中从这个新添加的边的一个endpoint

  • 我只想遍历一棵树并聚合父树及其直接子树。我该如何使用Gremlin将其聚合到({parent1,child},{child,child1}…}的结构列表数组中 在这种情况下,我想输出 订单并不重要。此外,请注意,我希望避免仅在同一节点上存在的任何圆形边(从子顶点到父顶点不可能存在圆形循环) 每个顶点都有一个标签城市,每个边都有一个标签高速公路 我的查询超时了,我想知道是否有更快的方法来实现这一点。

  • 我有一个具有两个顶点的简单图,ID为“a”和“b”。 我已将标签为“foo”的边从“a”分配给“b” 小妖精 == == 小妖精 == 我的问题是:如何沿同一条边向后移动?例如,如果一个查询遍历到一个出站顶点,那么该查询如何穿越同一条边返回到入站顶点? 我的查询如下: g、 E('04b4b9fd-2f20-751d-5673-5aa9d7ce0285').outV()。作为('outV')…[要