0

我正在将具有特定标签的顶点添加到图形中(目前使用 gremlin-python 而不是 gremlinv3.3)。我正在手动向这些节点添加“时间戳”属性。我希望能够找到最近添加的带有此标签的顶点,以便我可以从那里沿着链向后检索一定数量的顶点。在每次添加时添加一组从第二新到最新顶点的“下一个”类型边将允许我在找到最新顶点后执行向后搜索。
我希望能够在亚线性时间(理想情况下为 O(1) 时间)中找到最近添加的顶点。以下是一些如何做到这一点的想法:

  • 我可以手动维护一个“最新”类型的节点,它指向这种类型的最新顶点,然后搜索它。
  • 当我添加它们时,我可以在这些顶点上创建索引顶点的二叉树,以便向上搜索树并从这些顶点中的任何一个向下搜索将我带到 O(log(n)) 时间内的最新节点。
  • 也可能是我可以利用时间戳属性进行有效搜索,但我不清楚如何。

问题是,我不太了解图形搜索是如何在后台实现的,无法知道这些策略中的哪一个是最好的。任何人都可以帮忙吗?我创建的东西也有可能被重新部署到亚马逊海王星实例中,而且我也不清楚这是否会改变最佳策略。

4

1 回答 1

2

我可以手动维护一个“最新”类型的节点,它指向这种类型的最新顶点,然后搜索它。

这是最简单和最快的解决方案。基于其他搜索查询的解决方案需要某种索引结构,不允许您访问O(1).

于 2018-08-23T02:31:05.610 回答