我想计算图中有多少个顶点(节点):
gremlin>g.V().count().next()
Could not find a suitable index to answer graph query and graph scans are disabled: [(~label = user)]:VERTEX
Gremlin.version()是3.2.9
我使用janusGraph hbase存储数据,使用es存储索引。
但是可以这样进行一些查询:
gremlin> g.V().has('user_id','47357061').values('real_name')
==>jack
我不明白为什么我不能查询计数。
答案 0 :(得分:0)
JanusGraph不能在不迭代所有顶点的情况下回答该遍历。它不会将计数作为单独的值存储在后端中,因此实际上必须计算该遍历的计数,这意味着要遍历所有顶点。
您看到的警告只是告知您这一事实,并建议您仅执行可以使用索引执行的遍历,因为如果图形增长,所有其他遍历都会遇到可伸缩性问题。
如果您确实需要执行无法使用索引的遍历的功能,因为遍历必须遍历图形中的所有顶点(或大量顶点),则应查看Hadoop-Gremlin使用Spark与多个Spark工人并行执行这种遍历。