我面临的问题是 start 子句中的 lucene 索引查找比 where 子句慢。例如
我在带有 java 进程的 mac 上运行 neo4j 1.9.M05,该进程具有 4 GB 堆、150 万个节点、500 万个关系和 500 万个属性。
查询如下所示......基本上它具有匹配和其他 where 条件。我们试图通过索引查找来优化大量查询,因此更改没有索引查找的现有查询,但看起来索引查找速度较慢
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);
非常感谢任何线索或建议
问候
赛