找不到合适的索引来回答图形查询,并且图形扫描被禁用:[(〜label = user)]:VERTEX

时间:2019-06-20 10:44:53

标签: janusgraph

我想计算图中有多少个顶点(节点):

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

我不明白为什么我不能查询计数。

1 个答案:

答案 0 :(得分:0)

JanusGraph不能在不迭代所有顶点的情况下回答该遍历。它不会将计数作为单独的值存储在后端中,因此实际上必须计算该遍历的计数,这意味着要遍历所有顶点。

您看到的警告只是告知您这一事实,并建议您仅执行可以使用索引执行的遍历,因为如果图形增长,所有其他遍历都会遇到可伸缩性问题。

如果您确实需要执行无法使用索引的遍历的功能,因为遍历必须遍历图形中的所有顶点(或大量顶点),则应查看Hadoop-Gremlin使用Spark与多个Spark工人并行执行这种遍历。