繁体   English   中英

在Elasticsearch扫描和滚动中,是否可以控制批量大小和限制搜索中的文档数量?

[英]In Elasticsearch scan-and-scroll, is there a way to control both the batch size and limit the number of documents in the search?

使用Elasticsearch扫描和滚动功能,是否可以控制返回批次的大小以及匹配数量的限制?

根据Elasticsearch扫描和滚动文档

尽管我们指定的size为1,000,但我们会获得更多文档。 扫描时,该size将应用于每个分片,因此您将获得每个批次的最大size * number_of_primary_shards文档。

这似乎表明在扫描和滚动方式中使用了size参数,然后在query-then-fetch -type(限制匹配数)中使用了size参数,并且没有“旋钮”。

更新

一个用例是:

  • 我有很多索引(每个索引2个)。
    • 由于某些我无法更改的良好原因,它们是按天组织的。
  • 有些查询就像“每天给我所有东西,不需要订单”之类,这可能会导致很多结果(成千上万)。 似乎查询大小应为0 (或一些非常高的数字),以允许用户最终翻阅所有内容(如有必要)
  • 我想快速显示结果的第一页-第一页可以显示一个可变数字,具体取决于UI设置(大约100 s)。 似乎我应该能够控制它并在第一个滚动ID中获取此大小。

扫描滚动似乎是一个不错的选择,但是也许有更好的方法可以做到这一点?

size在扫描和滚动中使用不同。 它的确限制了每次滚动返回的文档数量,但是返回的size * num_of_primary_shards

一般而言,您是正确的,但您可以使用限制过滤器(或2.0中的限制查询)限制返回的匹配数-似乎有些奇怪,但如果以这种方式限制扫描和滚动,我将确保扫描和滚动是最佳方法期望的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM