gpt4 book ai didi

groovy - 使用 Groovy 通过 Gremlin 读取 GraphML 文件的正确方法

转载 作者:行者123 更新时间:2023-12-02 11:41:49 25 4
gpt4 key购买 nike

我正在尝试读取 GraphML 文件并将其用于 Gremlin 遍历。我使用与此页面上相同的代码:

http://tinkerpop.apache.org/docs/3.1.1-incubating/reference/

我使用 writeGraph 编写示例图,并使用 readGraph 将其读回。图表上的 toString() 调用使得似乎图已正确读取(每个图有 6 个节点和 6 个顶点),但随后仅应用 Gremlin 遍历生成 TinkerFactory 图的输出,而不是读入的输出。

代码

@Grab('org.apache.tinkerpop:tinkergraph-gremlin:3.1.1-incubating')
@Grab('org.apache.tinkerpop:gremlin-core:3.1.1-incubating')

import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.io.IoCore;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;

final Graph graph = TinkerFactory.createModern();
graph.io(IoCore.graphml()).writeGraph("test.xml");
final Graph newGraph = TinkerGraph.open();
newGraph.io(IoCore.graphml()).readGraph("test.xml");

def g = graph.traversal();
def n = newGraph.traversal();

println("Graph")
println(g.toString())
g.V(1).out().values('name').sideEffect{println it}.iterate()

println("newGraph")
println(n.toString())
n.V(1).out().values('name').sideEffect{println it}.iterate()

println("DONE")

输出

Graph
graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
lop
vadas
josh
newGraph
graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
DONE

该代码似乎适用于 GraphSON 和陀螺仪输出。

最佳答案

这是一个related post来自 Gremlin 用户邮件列表。当您读取 newGraph 时,id 会被视为 String。您可以通过配置 vertexIdManager 来更改此行为,如下所示:

def conf = new org.apache.commons.configuration.BaseConfiguration();
conf.setProperty("gremlin.tinkergraph.vertexIdManager","LONG");
final Graph newGraph = TinkerGraph.open(conf);
newGraph.io(IoCore.graphml()).readGraph(dest);

关于groovy - 使用 Groovy 通过 Gremlin 读取 GraphML 文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813842/

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