scala - elastic4s中如何使用search_after
问题描述
我正在尝试使用search_after在scala中使用elastic4s的查询来获取一些数据,因为我有超过10 000个项目。
我正在尝试这样的事情:
client.execute(
search(index).query(q).searchAfter(id).from(start).limit(limit)
)
但它不起作用。当我删除那个 searchAfter 时,它工作正常,但仅适用于前 10 000 个项目。我是弹性新手,因此将不胜感激。谢谢
解决方案
elasticsearch 将始终在常规搜索中返回最多 10,000 个结果。当您需要翻页超过 10,000 个结果时(例如在批处理中),您应该使用滚动功能而不是常规搜索。这将让您逐页“滚动”查询中的所有结果,直到查询不返回任何结果。请注意,滚动功能不允许排序。
在这里阅读更多:滚动 API
推荐阅读
- java - 此视图不受 android studio 约束。即使我使用推断约束,我也看不到按钮
- android - 我试图在顶部放置 2 个视图,在底部放置 2 个视图,但不起作用
- select - 是否有与 HTML 中的“选择多个”元素等效的小部件
- scala - apache spark - 将数据帧作为嵌套结构插入其他数据帧
- jupyter-notebook - 将图像嵌入到 jupyter notebook 并导出为 HTML
- ontology - protege 5 中的条件小部件
- text - 在 Hxd 编辑器中使用查找功能转到下一项
- mysql - 最好将杂项元数据存储在数据库中或在每次访问时进行计算
- magento - magento 2 我们发现有冲突的组件依赖
- reactjs - 使用 React Moment 在 React Semantic UI 中显示数据库中的时间