Не удалось найти подходящий индекс для ответа на запрос графика, и сканирование графиков отключено: [(~ label = user)]: VERTEX - PullRequest
0 голосов
/ 20 июня 2019

Я хочу посчитать, сколько вершин (узлов) в графе:

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 голосов
/ 25 июня 2019

JanusGraph просто не может ответить на этот обход без итерации по всем вершинам.Он не хранит счет как отдельное значение в бэкэнде, поэтому ему фактически нужно вычислить счет для этого обхода, что означает итерацию по всем вершинам.

Предупреждение, которое вы видите, просто информирует вас об этом и советуетвы должны выполнять только обходы, которые могут быть выполнены с использованием индекса, поскольку все другие обходы будут сталкиваться с проблемами масштабируемости, если ваш график растет.

Если вам действительно нужна функциональность для выполнения обходов, которые не могут использовать индекс какони должны пройти по всем вершинам вашего графа (или большому количеству вершин), затем вы должны изучить Hadoop-Gremlin , который использует Spark для выполнения такого обхода параллельно с несколькими рабочими Spark.

...