我想在TinkerGraph中运行一些查询,但我需要从外部文本文件读取它们,而不是执行Java调用:
TinkerGraph graph = TinkerGraph.open();
GraphTraversalSource g = graph.traversal();
InputStream input = new FileInputStream("graph.json");
GraphSONReader reader = GraphSONReader.build().create();
reader.readGraph(input, graph);
// Something like
run("g.V().hasLabel("foo").."
我已经检查了这个问题,但是答案显示了一些使用ConcurrentBindings的解决方案,这对我来说不是很清楚。
您可以使用GremlinGroovyScriptEngine
类来执行文本字符串查询的求值,同时使用嵌入式TinkerGraph。如果使用Gremlin服务器,则不需要执行此操作。
下面的例子应该或多或少地工作不变。您可能需要从Java代码中添加一些include
和类型声明语句,但基本的构建块本质上是这些:
ScriptEngine engine = new GremlinGroovyScriptEngine();
Bindings bindings = engine.createBindings();
bindings.put("g", graph.traversal());
engine.eval("g.V().limit(5)", bindings);