22

是否可以对密码查询进行分页。例如,产品列表,但我不想显示/检索/缓存所有结果,因为我可以有很多结果。

我正在寻找类似于 SQL 中的偏移量/限制的东西。

cypher skip + limit + orderby 是一个不错的选择吗?http://docs.neo4j.org/chunked/stable/query-skip.html

4

3 回答 3

22

SKIPLIMIT结合确实是要走的路。使用ORDER BY不可避免地会使 cypher 扫描与您的查询相关的每个节点。使用WHERE子句也是一样。不过性能应该不会那么差。

于 2013-05-02T13:06:30.690 回答
6

它就像普通的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)

于 2013-07-23T07:33:01.187 回答
0

Neo4j 现在显然使用“索引支持的 order by”,这意味着如果您在 SKIP/LIMIT 查询中的索引节点属性上使用字母 ORDERBY,那么 Neo4j 将不会像其他人提到的那样对所有“相关节点”执行完整扫描(他们的回答是很久以前的事了,所以请记住这一点)。该索引将允许 Neo4j 在它已经按 ORDERBY 顺序(字母顺序)存储索引属性的基础上进行优化,这样您的分页将比没有索引时更快。

于 2021-10-08T19:17:55.040 回答