2012-04-16 2 views
1

Мне нужно пересечь направленный ациклический граф (DAG) с помощью BFS. Я использую neo4j через REST API, поэтому мой основной способ общения с neo4j использует Cypher.Обход BFS с использованием cypher

С помощью Cypher я могу получить набор из всех путей от исходного узла, а от них - обход BFS.

Мне было интересно, есть ли более простой способ получить обход BFS с использованием Cypher. То, что я ожидаю в качестве вывода, будет массивом наборов узлов.

+0

Я хотел бы помочь, но я не совсем понимаю, что именно вы пытаетесь выполнить. Немного больше информации было бы полезно. – Andres

+0

@ Andres: в конечном итоге я хотел бы иметь в качестве вывода обход Итератора BFS по графику, упорядоченный по глубине. – Dan

+0

Не могли бы вы просто заказать результирующие пути после длины, возможно, взять последний узел из каждого, например http://bit.ly/ItCCQY –

ответ

1

Не могли вы тогда просто заказать полученные пути после того, как длина, может быть, взять последний узел из каждого, как http://bit.ly/HF0p0t как

start n=node(1) match p = n-[*1..]->m return p, length(p), last(p) order by length(p) asc 

Чтобы получить обратно пути в порядке возрастания?

+0

отличная отправная точка, спасибо! теперь мне просто нужно выяснить, как перемещаться по краям заданного типа, и мне хорошо идти .... +1 для консоли; не знал, что это там ... – Dan

+0

Я получаю SyntaxException: неизвестная функция, когда я использую last (p). У меня есть версия 1.6.1. это слишком старый? какую версию вы порекомендуете мне установить? – Dan

+1

Да, это Neo4j 1.7, я думаю, что эти функции не были в 1.6 –

Смежные вопросы