【问题标题】:How does pagination works in elastic search?分页在弹性搜索中如何工作?
【发布时间】:2021-08-21 02:13:39
【问题描述】:

我目前正在使用弹性搜索 python 客户端来搜索弹性搜索的索引。

假设我有 2000 万个文档,并且我正在使用带有 from and size 参数的分页。我在文档中读到有10k 的限制。但我不明白这个限制是什么意思。

例如,

  1. 这个限制是否意味着我只能使用分页(即来自和大小)调用 10000 次? 比如from=0, size =10from=10, size =10等,10000次。

  2. 或者他们是否意味着我可以使用 from 和 size 参数进行无限制的分页调用,但每个分页调用的大小限制为 10k?

有人可以澄清一下吗?

【问题讨论】:

    标签: python elasticsearch


    【解决方案1】:

    10k 的分页限制是指

    • 对于已应用的query,只能显示前 10k 个结果。
    • from:0 size:10,001 会报错“结果窗口太大”
    • from:10000, size:10 会报错“结果窗口太大”
    • 在上述 2 种情况下,我们试图访问当前查询文档的 10000+ 偏移量,因此出现异常

    • from 不代表pageNumber,而是代表starting offset

    【讨论】:

    • 感谢您的澄清。
    【解决方案2】:

    限制称为max_result_window,默认值为10k。从数学上讲,这是size+from 可以取的最大值。

    from:1, size:10000 会报错。

    from:5, size:9996 会报错。

    from:9999, size:2 会报错。

    如果您想要更深入的结果,推荐使用Search after

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2013-06-12
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      相关资源
      最近更新 更多