什么时候适合使用g.query()... vertex()vs g.V.has()

时间:2014-08-18 17:40:19

标签: gremlin titan

我对这个有点困惑。在整个文档中可以找到几个类似的例子。如:

g.V.has('name','hercules').next()
g.query().has("name",EQUAL,"hercules").vertices()

有人可以澄清上述两者之间的过程有何不同?

由于

1 个答案:

答案 0 :(得分:5)

第一个是gremlin-groovy语法:

g.V.has('name','hercules').next()

并且迭代所有顶点以寻找具有"名称"的顶点。物业价值为"赫拉克勒斯"。如果" name"索引然后泰坦将利用索引来避免线性扫描找到这样的顶点。

第二个基本上是Java和Titan API。上面的gremlin-groovy代码基本上编译成你的第二个语句:

g.query().has("name",EQUAL,"hercules").vertices()

但是,在第二个语句的情况下,它返回与过滤器匹配的所有顶点的迭代器,并且不会弹出第一个,如gremlin语句中所示(给定使用next())