我的任务是创建一个图形数据库,该数据库将填充来自一个非常大的数据库的信息,因此我们希望动态创建对象之间的关系。
每个顶点的标签并不是一成不变的,但我要么会:
或
我们的数据有每个资产的起始和结束位置的 ID,这是在当前系统中链接它们的原因,这就是我希望将它们加入到这个数据库中的方式。
举个例子,配送中心的起始节点为 0(因为它是本例中的起点),结束节点为 1,而 DeliveryRoute 的起始节点为 1,结束节点为 2,等等
有谁知道我如何动态生成这些关系?
我目前正在使用此网站来制作演示/概念证明: https://gremlify.com/
感谢您的宝贵时间。 扎克
除了 Gremlify 之外,学习 Gremlin 时可以使用的另一个重要资源是:https://www.kelvinlawrence.net/book/PracticalGremlin.html
我想说的是,你正在对图形通常建模方式之外的事物进行建模。图通常遵循一种模式,其中数据中的实体是节点/顶点,它们之间的关系(动作)是边。所以当你说:
举个例子,配送中心的起始节点为 0(因为它是本例中的起点),结束节点为 1,而 DeliveryRoute 的起始节点为 1,结束节点为 2,等等
如果“配送中心”本身就是一个节点,那就更有意义了。然后,您可能有一条“DeliveryRoute”边,将“配送中心”连接到某个下游目标顶点。
类似:
g.addV('DistributionCentre').property(id,0).as('dc0').
addV('DeliveryLocation').property(id,56).as('dl56').
addE('DeliveryRoute').property(id,101).from('dc0').to('dl56').iterate()
此处使用
as()
步骤是为遍历的组件提供临时标签,以便稍后在查询的其他部分中引用。因此,我们本质上是创建两个顶点,然后在创建它们之间的边时引用这些顶点。
但我强烈建议查看上面引用的链接,因为那里有更多关于如何在这个用例和其他用例中使用 Gremlin 的示例。