例如,我们有文本过滤器,例如
docs = db.view(“_ design / filter / _view / substr”,startkey = substring,endkey = substring + u“\ ufff0”,include_docs = True,limit = 20,skip = 0)
在没有慢跳的情况下制作分页的正确方法是什么?
答案 0 :(得分:1)
首先,我希望你明白这不是全文搜索。你也不能在不使用skip参数的情况下在CouchDB中实现分页,因为你不能说在哪里放(假设)第20个元素。因此,模拟分页的唯一方法是制作“下一个N结果”链接/按钮。
答案 1 :(得分:1)
CouchDB很放松。您现在可以使用skip
。它可以很好地工作,你可以专注于其他重要的事情。主要问题是它最终无法扩展。对于小型数据集(最多1,000行左右),我不担心。
但是,从长远来看,这个不会运作良好。您可以使用skip
而不是将0
设置为20
,40
,60
,startkey
等。
startkey=substring
,limit=20
。key
会告诉您它在视图中使用了哪个键。startkey=
来自第2步的key
值,加上limit=20
和skip=1
。看看发生了什么?第二个查询从第一个查询结束的地方开始。为避免两次显示相同的行,您只需跳过它。 (您也可以获取它,但在客户端忽略它 - 您的选择。)
大部分时间都有效。我还建议您查看CouchDB view API中描述的startkey_docid
。