是否可以对密码查询进行分页。例如,产品列表,但我不想显示/检索/缓存所有结果,因为我可以有很多结果。
我正在寻找类似于 SQL 中的偏移量/限制的东西。
cypher skip + limit + orderby 是一个不错的选择吗?http://docs.neo4j.org/chunked/stable/query-skip.html
是否可以对密码查询进行分页。例如,产品列表,但我不想显示/检索/缓存所有结果,因为我可以有很多结果。
我正在寻找类似于 SQL 中的偏移量/限制的东西。
cypher skip + limit + orderby 是一个不错的选择吗?http://docs.neo4j.org/chunked/stable/query-skip.html
SKIP
并LIMIT
结合确实是要走的路。使用ORDER BY
不可避免地会使 cypher 扫描与您的查询相关的每个节点。使用WHERE
子句也是一样。不过性能应该不会那么差。
它就像普通的sql,语法如下
match (user:USER_PROFILE)-[USAGE]->uUsage
where HAS(uUsage.impressionsPerHour) AND (uUsage.impressionsPerHour > 100)
ORDER BY user.hashID
SKIP 10
LIMIT 10;
此语法适用于最新版本 (2.x)
Neo4j 现在显然使用“索引支持的 order by”,这意味着如果您在 SKIP/LIMIT 查询中的索引节点属性上使用字母 ORDERBY,那么 Neo4j 将不会像其他人提到的那样对所有“相关节点”执行完整扫描(他们的回答是很久以前的事了,所以请记住这一点)。该索引将允许 Neo4j 在它已经按 ORDERBY 顺序(字母顺序)存储索引属性的基础上进行优化,这样您的分页将比没有索引时更快。