【问题标题】:Pagination for search indexes on cloudantcloudant上搜索索引的分页
【发布时间】:2016-08-24 16:30:17
【问题描述】:

我有一个 cloudant 数据库,其中包含用户访问日志的文档。示例:

{
  "name": "John Doe", 
  "url": "somepage.html", 
  "dateaccessed": "2016-08-23T21:20:25.502Z"
}

我用一个函数创建了一个搜索索引:

function (doc) {
  if(doc.dateaccessed) {
    var d = new Date(doc.dateaccessed);
    index("dateaccessed", d.getTime(), {store: true});
  }
}

现在,只需正常查询,此设置即可按预期工作。示例

{
  q: 'dateaccessed:[1420041600000 TO 1471987625266]',
  include_docs: true,
  sort: '-dateaccessed<number>',
}

但是,我希望限制结果 - 假设一次 5 个(可以使用 "limit: 5" 参数来完成),并且我想以某种方式进行分页 - 能够移动到下一个 5结果或前 5 个结果。

我查看了 cloudant 文档,那里有一个名为“书签”(https://cloudant.com/for-developers/search/) 的参数,但我不知道如何使用它。

我可以要求对此提供任何见解吗?

【问题讨论】:

    标签: node.js pagination cloudant


    【解决方案1】:

    Cloudant documentation 显示了有关如何使用书签的示例,但要点是您在搜索响应中从服务器获取书签,当请求下一页时,您使用在请求中收到的书签与 @987654322 POST 的 JSON 对象或 GET 的查询参数中的 @ 参数。

    【讨论】:

    • 1 - 我第一次执行查询。 2 - 从响应中检索书签并将其传递给下一个查询。我能够检索下一组结果。有了这个我可以创建上一个/下一个按钮,但至于实际的分页(页码)我不知道该怎么做。
    • 你不能。没有办法知道页数。您也无法确定您是否在最后一页。您必须提出请求才能找到下一页。
    • @rhyshort,这实际上不是真的。因为当您执行初始查询时,您将获得一个 total_rows 计数。因此,一旦您完成了初始查询,就可以进行分页。
    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多