Как написано в вашем запросе, шаг outE
возвращает ребра, а шаг has
проверяет свойства этих ребер, после чего обработчик запросов будет ожидать inV
, а не inE
. Без вашей модели данных трудно точно знать, что вам нужно, однако, глядя на Cypher, я думаю, что это то, что вы хотите.
sg = g.V().outE('PublishedIn').
subgraph('j_p_a').
inV().
has('Paper','paperTitle', 'My Paper Title').
inE('AuthorOf').
subgraph('j_p_a')
cap('j_p_a').
next()
Отредактировано, чтобы добавить:
Поскольку у меня нет ваших данных, я использовал свой график воздушных маршрутов. Я смоделировал этот запрос на вашем и использовал несколько шагов select
, чтобы ограничить размер обрабатываемых данных. Кажется, это работает в моем тестировании. Надеюсь, вы сможете увидеть сделанные мной изменения и попробовать их в своем запросе.
sg = g.V().outE('route').as('a').
inV().
has('code','AUS').as('b').
select('a').
subgraph('sg').
select('b').
inE('contains').
subgraph('sg').
cap('sg').
next()