Neo4j 使用Cypher进行graphaware时间树范围查询

Neo4j 使用Cypher进行graphaware时间树范围查询,neo4j,graphaware,Neo4j,Graphaware,我已经安装了graphaware时间树,我正在尝试使用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{va

我已经安装了graphaware时间树,我正在尝试使用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 ...

在显式添加关系名称并在末尾进行区分后,它运行得更好。。我把它保存在这里以备将来参考..:

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)

MATCH ps=(n:Event)-[:VISIT_ON]->(m:Minute{value:0})如果您希望获得最佳性能,那么也有一个REST API用于您尝试执行的操作。在Neo4j 3.0中,您可以直接从Cypher调用存储过程,而无需自己编写查询。美好的未来。