首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tinkerpop3自定义边缘id生成器

Tinkerpop3自定义边缘id生成器
EN

Stack Overflow用户
提问于 2018-11-15 12:24:36
回答 1查看 143关注 0票数 0

我使用TinkerGraph进行集成测试(扩展单元测试)。在这个实现中,Edge ids是作为整数序列生成的。我想要改变它,以便它们作为随机UUID生成。这样做的原因是为了使我的测试设置更接近我的生产图形数据库。我可以在Tinkerpop3中这样做吗?如果是的话,怎么做?

我发现在Tinkerpop/蓝图(https://github.com/tinkerpop/blueprints/wiki/id-implementation)中存在一个IdGraph.IdFactory,它似乎能提供我所需要的东西。然而,据我所知,这对于Tinkerpop3来说是不可用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-28 09:33:34

这看起来是可能的,但需要做一些工作。VertexEdge IdsTinkerGraph中的确定是用IDManagers做的这里

您可以看到,这是通过一个配置值来决定的,该值最终使用反射来构造IDManager

所以你必须做以下几件事:

  1. 通过实现IDManager来创建您自己的接口,您可以使用默认管理器作为指导。例如: 公共枚举DefaultIdManager实现IdManager {.任何{@覆盖公共长getNextId(最终TinkerGraph图){返回唯一随机数}}.}
  2. 然后,您必须使用指定的新管理器创建一个配置,并使用该管理器创建修补程序: config.addProperty(TinkerGraph.GREMLIN_TINKERGRAPH_EDGE_ID_MANAGER,“your.package.structure.YourIdManager.ANY”;TinkerGraph.open( BaseConfiguration );

我很想知道是否有更简单的方法,但我认为这会奏效的。

边注:

如果生产图DB提供内存层,可能会更容易检查。我知道一些dbs做的图,使用它而不是TinkerGraph可能会更好。我相信,TinkerGraph实际上只是为了在周围电镀。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53319470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档