为什么在jackrabbit中从查询中跳过节点非常慢?

时间:2009-02-22 21:59:50

标签: jackrabbit

当我执行这样的简单查询时:

select * from nodeType

在范围迭代器上调用skip(N)很慢。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

找出原因(自我回答) - 默认使用文档顺序。

尝试向查询添加合理的“order by” - 从10,000个节点的分钟到< 1秒。

答案 1 :(得分:1)

遗憾的是,Jackrabbit实现中的RangeIterator skip()方法(RangeIterator只是一个接口)是线性遍历节点的。你不妨写一下

int counter = 0;
while ( counter < offset && iter.hasNext() ) { iter.next(); counter++; }