2016-04-04 10 views
0

私はgraphaware timetreeをインストールし、cypherを使って範囲クエリを実行しようとしています。以下のクエリは私に最高のパフォーマンスを与えません。これが正しい方法であれば助言してもらえますか?graphaware timetree range query with 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 ... 
+1

何」のREST APIがありますあなたが最高のパフォーマンスを望むならば、やってみてください。 Neo4j 3.0では、クエリを自分で記述することなく、Cypherから直接ストアドプロシージャを呼び出すことができます。良い時が来る。 –

答えて

0

最後に明示的な関係名を追加し、個別の後に、それはより良い実行されます..私は、今後の参考のためにここでそれを維持しています..:

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)