2016-04-04 3 views
0

J'ai installé le graphaware timetree, et j'essaie d'exécuter une requête de plage en utilisant le chiffrement. la requête ci-dessous ne me donne pas la meilleure performance. pouvez-vous s'il vous plaît aviser si c'est la bonne façon?graphaware timetree gamme requête avec 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

Il y a une API REST pour ce que vous » Re essayant de faire aussi bien, si vous voulez la meilleure performance. Dans Neo4j 3.0, vous serez capable d'appeler une procédure stockée directement depuis Cypher sans avoir besoin d'écrire la requête vous-même. Bons moments à venir. –

Répondre

0

après avoir ajouté des noms de relations explicitement, et distinct à la fin, il fonctionne mieux .. je le garde pour référence ultérieure ..:

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)