У меня есть простой следующий график:
http://console.neo4j.org/?id=v0cvwnCypher UNION запрос
И я удивляюсь, почему следующий запрос:
START n=node(2)
match n-[:KNOWS]-node
return node.name as name
UNION
START n=node(2)
match n-[:ACTS_IN]-node
return node.name as name
бросает исключение:
java.lang.AssertionError: assertion failed: Can't profile the same pipe twice
at scala.Predef$.assert(Predef.scala:179)
at org.neo4j.cypher.internal.profiler.Profiler.decorate(Profiler.scala:47)
at org.neo4j.cypher.internal.pipes.Pipe$class.createResults(Pipe.scala:35)
at org.neo4j.cypher.internal.pipes.NullPipe$.createResults(Pipe.scala:47)
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61)
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61)
at org.neo4j.cypher.internal.pipes.PipeWithSource.createResults(Pipe.scala:61)
at org.neo4j.cypher.internal.pipes.UnionIterator.loadNextIterator$1(UnionIterator.scala:60)
at org.neo4j.cypher.internal.pipes.UnionIterator.step$1(UnionIterator.scala:68)
at org.neo4j.cypher.internal.pipes.UnionIterator.stepIfNeccessary(UnionIterato
Пара вопросов относительно UNION:
Возможно ли выполнить еще одно заключительное предложение соответствия для всех данных, которые накапливались в результирующем наборе в результате UNION в предыдущих подзапросах?
Возможно ли выполнить заказ по этим данным?
Спасибо.
Хотя это не напрямую ответить на ваш вопрос, я просто хотел бы отметить, что ваш запрос может быть переписан без 'UNION'. Просто используйте только первую половину запроса и используйте это для своего MATCH: 'n - [: KNOWS | ACTS_IN] -node' – ean5533
Да, я знаю простой пример использования, чтобы попробовать UNION .. 10x в любом случае –