请查看下面我想要匹配的图表图片。我不认为我做任何复杂的事情,所以我不确定为什么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
答案 0 :(得分:-1)
这样的事情应该表现得更好,因为它会减少两者之间的基数。但是从属性图的角度来看,你的模型仍然存在疑问。
如果您可以分享您的示例数据库,我们也可以帮助您更好地
cmd='rm file1.txt'