Cho*_*lio 3 nosql gremlin titan
我正在将 Titan 与 Cassandra 一起使用,并且有几个关于使用 Gremlin 查询数据库的(相关)问题:
1.) 有没有比计算所有顶点更快的方法
g.V.count()
Run Code Online (Sandbox Code Playgroud)
Titan 声称使用索引。但是如何使用没有属性的索引?
WARN c.t.t.g.transaction.StandardTitanTx - Query requires iterating over all vertices [<>]. For better performance, use indexes
Run Code Online (Sandbox Code Playgroud)
2.) 是否有比计算属性为“myProperty”的所有顶点更快的方法
g.V.has('myProperty').count()
Run Code Online (Sandbox Code Playgroud)
再次泰坦意味着以下:
WARN c.t.t.g.transaction.StandardTitanTx - Query requires iterating over all vertices [(myProperty<> null)]. For better performance, use indexes
Run Code Online (Sandbox Code Playgroud)
但是,我又该如何做到这一点?我已经有一个“myProperty”的索引,但它需要一个值来快速查询。
3.) 与边缘相同的问题......
迭代所有顶点g.V.count()
是获得计数的唯一方法。它不能“更快”完成。如果您的图表太大以至于需要数小时才能获得答案,或者您的查询根本没有返回,您应该考虑使用Faunus。然而,即使使用 Faunus,您也可以期待等待您的答案(这就是 Hadoop 的本质……这里没有亚秒级响应),但至少您会得到答案。
任何时候进行表扫描(即迭代所有顶点)时,都会收到“迭代所有顶点”的警告。一般来说,你不想这样做,因为你永远不会得到回应。添加索引不会帮助您更快地计算所有顶点。
边缘有相同的答案。g.E.count()
如果可以,请在 Gremlin 中使用。如果时间太长,请尝试 Faunus,这样您至少可以得到答案。