我对这个有点困惑.在整个文档中可以找到几个类似的例子.如 :
g.V.has('name','hercules').next()
g.query().has("name",EQUAL,"hercules").vertices()
Run Code Online (Sandbox Code Playgroud)
有人可以澄清上述两者之间的过程有何不同?
谢谢
第一个是gremlin-groovy语法:
g.V.has('name','hercules').next()
Run Code Online (Sandbox Code Playgroud)
并且迭代所有顶点以查找具有值为"hercules"的"name"属性的顶点.如果"名称"被索引,则泰坦将利用索引来避免线性扫描以找到这样的顶点.
第二个基本上是Java和Titan API.上面的gremlin-groovy代码基本上编译成你的第二个语句:
g.query().has("name",EQUAL,"hercules").vertices()
Run Code Online (Sandbox Code Playgroud)
但是,在第二个语句的情况下,它返回一个与过滤器匹配的所有顶点的迭代器,并且不会弹出第一个,如gremlin语句中所示(给定使用next()).