当我执行这样的简单查询时:
select * from nodeType
在范围迭代器上调用skip(N)
很慢。
我做错了什么?
答案 0 :(得分:2)
找出原因(自我回答) - 默认使用文档顺序。
尝试向查询添加合理的“order by” - 从10,000个节点的分钟到< 1秒。
答案 1 :(得分:1)
遗憾的是,Jackrabbit实现中的RangeIterator skip()方法(RangeIterator只是一个接口)是线性遍历节点的。你不妨写一下
int counter = 0;
while ( counter < offset && iter.hasNext() ) { iter.next(); counter++; }