3级Neo4j查询!如此慢,39秒的执行时间

时间:2016-01-05 17:11:57

标签: neo4j

请查看下面我想要匹配的图表图片。我不认为我做任何复杂的事情,所以我不确定为什么Neo4j这么慢。

我的数据库中有20MB的数据(约300个节点和350个关系)。我已将每个节点和属性编入索引。我的查询需要39秒才能运行EVERYTIME。我得到了我想要的结果,但查询速度很慢

我尝试将movie1和movie2结合起来挂掉相同的All_Movies,但查询仍然很慢

 MATCH
( mainGuy:Person { uri:'http://example.com/foo' })<-[:IN]-(movie1:Movie) ,

(movie1)<-[:TYPE|:SUBTYPE*1..3]-(allM:All_Movies  ),

( nonMoF:Person)<-[:IN]-(movie1),

(movie2:Movie)<-[:TYPE|:SUBTYPE*1..3]-(allM2:All_Movies  ),

( pou:Person)<-[:IN]-(movie2),

(pou2:Person)<-[:IN]-(movie2),

( reqGuy:Person)<-[:ACTED_IN]-( movie2),

( nonMoF)<-[:ACTED_IN]-(movie2) ,

(reqGuy)<-[:NAME*0..3]-(cnBlah:OtherData)  ,

(oin656:IdInfo)<-[r:OTHER*0..3]-(reqGuy) 

WHERE  allM2.name  = 'Lionheart'  AND  allM.name  = 'Lionheart'  AND not(  ()-[:NAME]->(oin656)  )

RETURN reqGuy, cnBlah , oin656, movie1

Neo4j graph in my Database

1 个答案:

答案 0 :(得分:-1)

这样的事情应该表现得更好,因为它会减少两者之间的基数。但是从属性图的角度来看,你的模型仍然存在疑问。

如果您可以分享您的示例数据库,我们也可以帮助您更好地

cmd='rm file1.txt'