Мне нужно пройти по графику neo4j, используя Python27.
Из руководства, которое я видел, я могу определить Обход и включить Оценщик , и я получил нечто похожее на это.
def my_evaluator(path):
if (path.end['type'] == 'STOP') or (path.end['type'] == 'BUS_STOP'):
return Evaluation.EXCLUDE_AND_CONTINUE
else:
return Evaluation.INCLUDE_AND_CONTINUE
def get_passengers_with_bus_stop(db, start_node):
nodes = []
traverser = db.traversal()\
.relationships('STOPS_AT', INCOMING)\
.relationships('HAS_BEEN', OUTGOING)\
.evaluator(my_evaluator)\
.traverse(start_node)
# Name
for n in traverser.nodes.iterator():
nodes.append(n['name'])
return nodes
Но из списка возвращенных узлов я хочу исключить первый узел и иногда останавливаться на каком-то глубине.
Как я могу сделать это с Обходами , которые определяют руководство de neo4j?
Иногда я находил презентацию, которая объясняет другой способ определения Обходы , но это не работает должным образом, я получаю и ошибку из Python. Нужно ли устанавливать что-то еще?
class Users(neo4j.Traversal): # Traversals ! queries in Neo4j
types = [ neo4j.INCOMING.WORKS_AS,neo4j.OUTGOING.BELONGS_TO]
order = neo4j.BREADTH_FIRST
stop = neo4j.STOP_AT_END_OF_GRAPH
returnable = neo4j.RETURN_ALL_BUT_START_NODE
Как я могу определить Траверс для neo4j с Python для:
- Исключить первый узел
- Остановись на глубине
Может быть, я должен использовать вычитания ? Как я могу их определить?
Более конкретно, я хочу определить Обход по этому графику, чтобы перейти от узла «Я» здесь к узлу «-1» или только к «+1». График определяет направление отношений и их имена.