lucene索引查询查询比基于where子句查询更慢的数据更慢

时间:2013-04-18 16:34:21

标签: java neo4j cypher spring-data-neo4j

我遇到的问题是,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);

任何线索或建议非常感谢

此致

西

0 个答案:

没有答案