elasticsearch - 弹性搜索返回相同的滚动 ID
问题描述
弹性搜索为每个请求返回相同的滚动 ID ,但数据状态不同。它适用于分页。
但是我需要在我的堆栈中维护滚动 ID,所以我可以向上/向下滚动所有文档 a/c 到分页,一次 10 个文档。我需要根据要求避免/减少/优化浏览器内存以仅包含 10 个文档而不是所有文档。
例如
第一个请求给我 10(1-10) 个滚动 ID为 scroll_id_1 的文档。我把它推到我的堆栈中。
第二个请求给我接下来的 10(11-20) 个具有最近滚动 ID的文档,即 scroll_id_1 再次给我新的滚动 ID scroll_id_1。我把它推到我的堆栈中。
现在,如果我想向上滚动查看前 10(1-10) 个文档的滚动 ID scroll_id_1,请给我新的下 10(21-30) 个文档。这是问题有没有办法解决这个问题?生成自定义滚动 ID,以便我可以轻松地向上/向下滚动 a/c 以满足我的要求。
解决方案
首先,Scroll API 不应该用于实时分页,它仅用于批量分页。
其次,Scroll API 仅用作向前分页,不支持向前/向后分页。
您应该调查更轻量级并允许来回分页的分页...它还允许您使用时间点保留search_after
索引状态
此外,如果您滚动的距离不超过前 10000 个文档,那么您只需要from
/size
分页
推荐阅读
- python - 安装程序。如何将所有 python 代码放入 zip 文件而不是放入嵌入式 PYZ
- reactjs - 有没有办法使用 react native 下载图像,我目前有一个 base64 字符串用于使用 android 下载管理器(没有 url!)?
- swift - 为什么使用 SwiftUI 按钮的图像背景不显示在工具栏中?
- variables - 将 HTCondor 中的 $(Process) 编号更改为 1 而不是 0
- python - pip install ecapture 会产生错误。我该如何解决这个问题?
- c++ - 具有自定义构造函数的类中的 std::vector::emplace_back 错误
- mysql - 是否可以基于单个列创建 SQL 语句?
- javascript - 角度以百分比显示十进制值
- java - 具有相同名称的元素和子元素的杰克逊 XML 映射器
- file - PosScript 可以使用相对的 windows 文件名吗?