我遇到的问题是,start子句中的lucene索引查找比where子句慢。 e.g
我在mac上运行neo4j 1.9.M05,java进程有4 gb的堆,1.5个llion节点,500万个关系和500万个属性。
查询看起来如下....基本上它有匹配和其他条件。我们试图通过索引查找来优化大量查询,因此更改没有索引查找但看起来像索引查找的现有查询更慢
CYPHER 1.8 START a=node(21102),
cu=node:myindex(id="020513_1359970281348_1360024480338_2")
MATCH cu<-[:cp_in]-(cp),
(out)<-[:ap]-(cp),
(out)-[:ac]->(path0_child)-[:acp*0..10]->(path0)
,(out)<-[:ahp]-(a)
WHERE path0.id! =~'(?i)^\\Qtest\\E$'
RETURN DISTINCT out SKIP 0 LIMIT 50
我们正在使用spring数据并且放置索引查找缓存似乎没有帮助
Index<Node> index = template.getGraphDatabase().getIndex("myindex");
((LuceneIndex<Node>) index).setCacheCapacity("id", 30000000);
任何线索或建议非常感谢
此致
西