如何在运行时在Gremlin服务器上以编程方式创建新的图形实例

如何在运行时在Gremlin服务器上以编程方式创建新的图形实例,gremlin,gremlin-server,Gremlin,Gremlin Server,我有一个连接到Gremlin服务器的Java项目。我想在运行时创建5个新的Neo4j图形实例?我如何在Gremlin服务器上执行此操作 另外,我也听说过Gremlin服务器中的会话和无会话状态,但我真的不明白它的用途?!有人能谈谈这一点吗?但更重要的是,要展示如何在Gremlin服务器上的Java项目中使用会话状态和无会话状态 非常感谢 例如: List<GraphTraversalSource> graphs; for (int x= 0 ; x < 5 ; x++) {

我有一个连接到Gremlin服务器的Java项目。我想在运行时创建5个新的Neo4j图形实例?我如何在Gremlin服务器上执行此操作

另外,我也听说过Gremlin服务器中的会话和无会话状态,但我真的不明白它的用途?!有人能谈谈这一点吗?但更重要的是,要展示如何在Gremlin服务器上的Java项目中使用会话状态和无会话状态

非常感谢

例如:

List<GraphTraversalSource> graphs;

for (int x= 0 ;  x < 5 ; x++) {
 graph = Neo4jGraph.open();
 g = graph.traversal(); 
 graphs.add(g);
}
列表图;
对于(int x=0;x<5;x++){
graph=Neo4jGraph.open();
g=图的遍历();
添加(g);
}

简单的回答是,Gremlin服务器不允许程序化图形创建-图形是在Gremlin服务器启动之前预先配置的

较长的答案是,Gremlin服务器是Gremlin服务器协议的一个参考实现,这意味着根据您使用的支持TinkerPop的图形数据库,您可能会得到不同的问题答案。例如,DS-Graph和JanusGraph都有用于动态图构造的选项。另一方面,Neo4j和TinkerGraph利用了Gremlin服务器的原始参考实现,因此没有这种功能

关于参考实现的最后一点引出了一个更长的答案。您可以提交一个脚本来创建像
Neo4jGraph
TinkerGraph
这样的图,但它不会将它们添加到Gremlin服务器持有的全局图列表中(您已经尝试在伪代码中用
图模拟这些图。添加(g)
)。当然,这意味着您将无法在将来的请求中访问新创建的
Graph
实例……除非您。TinkerPop同时具有无会话和基于会话的请求的原因是,会话对服务器的成本往往更高,因为它们在请求之间保持更多的状态,并将请求绑定到单个Gremlin服务器,而不是将请求分散到集群中。TinkerPop建议对几乎所有用例使用无会话,并为一些相当狭窄的用例保留会话请求(如工具-基于Gremlin的可视化UI)


可能有一些方法可以扩展Gremlin服务器以满足您的需要(JanusGraph使用Gremlin服务器的打包实现了这一点),但这需要您了解代码本身。我可能会为您提供一些额外的指导,但StackOverflow可能不是这样做的合适地方。如果您想更详细地讨论该选项,请随时在上提问。

简短的回答是,Gremlin Server不允许编程图形创建-图形是在Gremlin Server启动之前预先配置的

较长的答案是,Gremlin服务器是Gremlin服务器协议的一个参考实现,这意味着根据您使用的支持TinkerPop的图形数据库,您可能会得到不同的问题答案。例如,DS-Graph和JanusGraph都有用于动态图构造的选项。另一方面,Neo4j和TinkerGraph利用了Gremlin服务器的原始参考实现,因此没有这种功能

关于参考实现的最后一点引出了一个更长的答案。您可以提交一个脚本来创建像
Neo4jGraph
TinkerGraph
这样的图,但它不会将它们添加到Gremlin服务器持有的全局图列表中(您已经尝试在伪代码中用
图模拟这些图。添加(g)
)。当然,这意味着您将无法在将来的请求中访问新创建的
Graph
实例……除非您。TinkerPop同时具有无会话和基于会话的请求的原因是,会话对服务器的成本往往更高,因为它们在请求之间保持更多的状态,并将请求绑定到单个Gremlin服务器,而不是将请求分散到集群中。TinkerPop建议对几乎所有用例使用无会话,并为一些相当狭窄的用例保留会话请求(如工具-基于Gremlin的可视化UI)

可能有一些方法可以扩展Gremlin服务器以满足您的需要(JanusGraph使用Gremlin服务器的打包实现了这一点),但这需要您了解代码本身。我可能会为您提供一些额外的指导,但StackOverflow可能不是这样做的合适地方。如果您想更详细地讨论该选项,请随时在上提问