- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有问题。如果我使用设置大小的直方图复合聚合。例如我有整数范围。聚合中的每个数字桶代表 1 天(使用整数作为日期并不重要)。
如果我使用 size
并说我想得到 10 个桶的结果。我可以可靠地使用 after_key
来选择我的聚合日期吗?
因为如果我按特定日期范围过滤,我也会得到过滤范围之外的桶,因为一些文档会在那里,因为直方图是在间隔字段上创建的(data_range
字段上的日期直方图也是如此类型)。
我的想法是使用 after_key
的组合来设置真正的开始日期和 size
来选择我想要多少天的结果。
让我担心的是来自documentation :
The
after_key
is usually the key to the last bucket returned in the response, but that isn’t guaranteed. Always use the returnedafter_key
instead of derriving it from the buckets.
如果说:我会错过一些桶吗:after_key: 10 size: 5
after_key: 15 size: 5
或者更好的问题是,最后返回的桶与下一个 after_key 不匹配的情况是什么?
这对于 Kibana 正确显示时间也很有用,但有些桶可能代表 30 年的范围,通常只查询 1 个月。因此,如果我可以正确分页,我可以节省很多。
最佳答案
据我了解,您希望具有复合聚合的滚动功能。我是对的,因为你在正确的轨道上。
将其视为 SQL 中的偏移键,但不是提供行号,而是指定最后一行值。
它的工作方式是,在进行复合聚合时,它将跳过行,直到 after_key
中提到的行,并返回下一个集合或长度 size
如果新文档是这两个调用之间的索引,您可能会错过/超出/等一些数据的唯一地方。就像你的前 5 个文档一样,你从 1 到 5,然后一些新文档被索引并插入/位于这些第一个结果之间。你可能会错过那些,因为在你第二次打电话时,你会在 5 点之后要求记录。
否则你很好。
我经常使用复合聚合,因为它有助于读取普通搜索 API 无法读取的聚合数据。
只需跟踪 after_key
,当桶的长度变为零时,您可以关闭循环。
关于具有 after_key 和大小的 ElasticSearch 复合聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63508283/
我有问题。如果我使用设置大小的直方图复合聚合。例如我有整数范围。聚合中的每个数字桶代表 1 天(使用整数作为日期并不重要)。 如果我使用 size 并说我想得到 10 个桶的结果。我可以可靠地使用 a
我是一名优秀的程序员,十分优秀!