想知道差异b / w Titan Query和ES查询

时间:2014-07-23 18:17:24

标签: titan

查询之间有什么区别:

我想查找城市名称为XYZ的所有数据,

  1. 当我使用Titan
  2. 之类的xyzCityVertex.query().direction(IN).label("hasCity").iterator()图表查询时

    2.当我直接执行Elastic Search query而没有像cityField:"XYZ"

    这样的泰坦时

    是的,一个是Graph查询,其他是普通的ES查询。但是暂时忘记了这一点并想象我使用Titan存储的数据集,我想为同一目的运行两个查询。

    内部和性能都相同吗?

1 个答案:

答案 0 :(得分:2)

很难“忘记”一个是顶点查询而另一个是ES查询。这就是使他们如此显着不同的原因。我想说它们也可能代表不同的用例。您通常使用“图形查询”或“ES查询”来查找顶点或顶点集以开始遍历。 “图形查询”可能比ES查询更快,但图形查询应具有高选择性,因为它通常不应返回“很多东西”。 ES查询具有较少的限制,并且更适合返回大量内容。

在您的示例中,您显示“顶点查询”,这意味着您已经找到了您感兴趣的顶点并希望从中进行遍历。事件边缘上的遍历(例如你的示例节目)应该非常快,我认为它会比使用“图形查询”或“ES查询”对相同相邻顶点的类似查找更快。

换句话说:

g.V('city','XYZ').in('hasCity').cityField

比图表查询更快,其中cityField被索引以返​​回大量顶点:

g.V('cityField','XYZ')

并且比cityField

上的等效ES查询更快