запрос диапазона графического дерева времени с помощью Cypher

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

MATCH ps=(n:Event)-[:VISIT_ON]-(m:Minute{value:0})--(h:Hour{value:0})--(d:Day{value:8})--(M:Month{value:2})--(y:Year{value:2016})  
match pe=(n1:Event)-[:VISIT_ON]-(m1:Minute{value:59})--(h1:Hour{value:23})--(d1:Day{value:8})--(M1:Month{value:2})--(y1:Year{value:2016})  
MATCH ph=shortestPath((m)-[:NEXT*]->(m1)) 
WITH nodes(ph) AS minutes
UNWIND minutes as minute 
MATCH (minute)-[:VISIT_ON]->(e:Event) 
.....
return ...

person Lior Goldemberg    schedule 04.04.2016    source источник
comment
Есть REST API для того, что вы пытаетесь сделать, если вам нужна максимальная производительность. В Neo4j 3.0 вы сможете вызывать хранимую процедуру непосредственно из Cypher без необходимости писать запрос самостоятельно. Хорошие времена впереди.   -  person Michal Bachman    schedule 05.04.2016


Ответы (1)


после явного добавления имен отношений и отличных от них в конце, он работает лучше .. я сохраняю его здесь для дальнейшего использования ..:

MATCH ps=(n:Event)-[:VISIT_ON]->(m:Minute{value:0})<-[:CHILD]-(h:Hour{value:0})<-[:CHILD]-(d:Day{value:8})<-[:CHILD]-(M:Month{value:2})<-[:CHILD]-(y:Year{value:2016})  
match pe=(n1:Event)-[:VISIT_ON]->(m1:Minute{value:59})<-[:CHILD]-(h1:Hour{value:23})<-[:CHILD]-(d1:Day{value:8})<-[:CHILD]-(M1:Month{value:2})<-[:CHILD]-(y1:Year{value:2016})  
MATCH ph=shortestPath((m)-[:NEXT*]->(m1)) 
with distinct nodes(ph) as minutes
return size(minutes)
person Lior Goldemberg    schedule 04.04.2016