如何获取具有跳过限制的密码的总行数?

时间:2013-07-18 14:05:55

标签: pagination neo4j cypher

我可以使用skip,limit(和order by)来获取UI中特定页面的内容。 例如。渲染页面大小的第n页m。 UI要求跳过n * m并限制m。

但是,UI希望为所有可能的页面生成链接。为此,我必须返回neo4j中可用的总行数。 例如。对于总p行,UI将生成超链接1,2,3 ...(p / m)。

在使用skip,限制在密码中时获得总行数的最佳方式(就性能而言)是什么?

1 个答案:

答案 0 :(得分:4)

一般情况下,建议不要取所有结果,这要求您将图形的大幅区域提取到内存中。

您有两种选择:

  1. 使用更简单的查询版本作为单独的计数查询(也可能异步运行)
  2. 将计数查询和您的真实查询合并为一个,但它会比您的跳过限制查询贵得多,在最坏的情况下,totalcount / pageSize时间更贵

    start n = node:User(name = {username})   匹配n - [:知识] - >()   n,计数(*)为总数   匹配n - [:知识] - > m   返回m.name,总计   跳过{偏移}   限制{pagesize}