Neo4j 2.0通过Cypher查询传递给执行引擎有多长时间?

时间:2014-03-07 20:12:18

标签: plugins cypher neo4j

基本上,查询大小的限制是什么?

我正在编写一个查询,在数据库中的所有属性中搜索字符串。在查询结束时,我将结果并将它们分类到存储桶中。这使得一个非常长的密码查询。

我将此查询传递给服务器插件中的执行引擎。现在我的属性有限,所以查询运行正常。我只关心随着时间的推移我获得更多属性,查询的实际字符串大小对于执行引擎来说太长了。

我有一个基本上有这么多行的查询:

MATCH (n) WHERE
( n:Program__CMC ) or    
n.learningObjective =~ '(?i).*criteria.*' or  
n.behavior =~ '(?i).*criteria.*' 

// This places the results into categories
WITH n  RETURN 
SUM(CASE when any(l IN labels(n) WHERE l='Program__CMC') THEN 1 ELSE 0 END) AS LABELProgram__CMC ,  
SUM(CASE WHEN  n.acronymn =~ '(?i).*criteria.*'  THEN  1 ELSE 0 END) AS NODEacronymn, SUM(CASE WHEN  n.behavior =~ '(?i).*criteria.*'  THEN  1 ELSE 0 END) AS NODEbehavior

这只是我正在运行的查询的一小部分。我实际上也在使用参数和搜索标签和关系,但为了清晰起见,我把它们留了下来。

如果有限制,并且我有可能达到它,那么我将不得不拆分查询并合并结果。

1 个答案:

答案 0 :(得分:0)

没有明确的限制,虽然当你进入几兆字节范围时我已经看到了一些有趣的问题,所以它不是无限的。我更担心你需要点击数据库中的每个节点来进行这个查询 - 至少在MATCH中没有可以过滤的标签吗?