首页 > 解决方案 > elastic4s中如何使用search_after

问题描述

我正在尝试使用search_after在scala中使用elastic4s的查询来获取一些数据,因为我有超过10 000个项目。

我正在尝试这样的事情:

client.execute(
   search(index).query(q).searchAfter(id).from(start).limit(limit)
)

但它不起作用。当我删除那个 searchAfter 时,它工作正常,但仅适用于前 10 000 个项目。我是弹性新手,因此将不胜感激。谢谢

标签: scalaelasticsearchelastic4s

解决方案


elasticsearch 将始终在常规搜索中返回最多 10,000 个结果。当您需要翻页超过 10,000 个结果时(例如在批处理中),您应该使用滚动功能而不是常规搜索。这将让您逐页“滚动”查询中的所有结果,直到查询不返回任何结果。请注意,滚动功能不允许排序。

在这里阅读更多:滚动 API


推荐阅读