查询之间有什么区别:
我想查找城市名称为XYZ
的所有数据,
Titan
xyzCityVertex.query().direction(IN).label("hasCity").iterator()
图表查询时
醇>
2.当我直接执行Elastic Search query
而没有像cityField:"XYZ"
是的,一个是Graph查询,其他是普通的ES查询。但是暂时忘记了这一点并想象我使用Titan存储的数据集,我想为同一目的运行两个查询。
内部和性能都相同吗?
答案 0 :(得分:2)
很难“忘记”一个是顶点查询而另一个是ES查询。这就是使他们如此显着不同的原因。我想说它们也可能代表不同的用例。您通常使用“图形查询”或“ES查询”来查找顶点或顶点集以开始遍历。 “图形查询”可能比ES查询更快,但图形查询应具有高选择性,因为它通常不应返回“很多东西”。 ES查询具有较少的限制,并且更适合返回大量内容。
在您的示例中,您显示“顶点查询”,这意味着您已经找到了您感兴趣的顶点并希望从中进行遍历。事件边缘上的遍历(例如你的示例节目)应该非常快,我认为它会比使用“图形查询”或“ES查询”对相同相邻顶点的类似查找更快。
换句话说:
g.V('city','XYZ').in('hasCity').cityField
比图表查询更快,其中cityField被索引以返回大量顶点:
g.V('cityField','XYZ')
并且比cityField