gremlin- ​​python - получает узлы с более чем двумя ребрами - PullRequest
1 голос
/ 23 марта 2020

В настоящее время я использую gremlin- ​​python для изучения графика. Я хочу получить все вершины, имеющие более двух ребер. Я использую анонимный обход для фильтрации пользователей по количеству ребер, но ниже приведена ошибка, которую я получаю.

AttributeError: у объекта 'list' нет атрибута 'out'

Я новичок в этом, не уверен, что я делаю здесь неправильно. Это способ, описанный в ограниченных доступных руководствах / документах gremlin- ​​python.

Screenshot of Jupyter NB shell.

1 Ответ

3 голосов
/ 23 марта 2020

Было бы полезно, если бы вы включили фрагмент кода, показывающий используемый вами импорт, а также запрос. В своем Python коде вы не забыли импортировать этот класс?

from gremlin_python.process.graph_traversal import __

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

g.V().hasLabel('airport').where(__.out().count().is_(P.gte(2))).count().next()

Если вы это сделаете Если у вас нет этого импорта, вы увидите ошибку, подобную той, которую вы видите.

При использовании gremlin- ​​python в этом месте есть список наиболее часто используемых импортов

ИЗМЕНЕНО, чтобы добавить:

Как отмечает Стивен в комментарии ниже, учитывая, что вам нужно только знать, есть ли хотя бы два исходящих ребра, вы можете уменьшить работу, которую должен выполнять механизм запросов (некоторые оптимизаторам это может не понадобиться), добавив шаг limit.

g.V().hasLabel('airport').where(__.out().limit(2).count().is_(P.gt(1))).count().next()
...