【问题标题】:Significant terms aggregation with parent sampler aggregation带有父采样器聚合的重要术语聚合
【发布时间】:2016-11-24 01:44:23
【问题描述】:

我有一个包含约 3m 文档的 ES 2 索引,并且我正在对具有经典幂律频率分布的相对高基数字段(约 1m 唯一值)进行重要的术语聚合(其中一些唯一值非常频繁,其他大多数形成低计数的长尾)。

这种聚合非常昂贵且速度慢,因此我开始研究 ES 2 的新 sampler aggregation 功能。它作为父聚合工作,使子聚合对数据样本起作用。但是,我想更好地了解它是如何工作的,因为关于这个主题的文档很少。

我使用 shard_size 参数作为 200 的采样器聚合,我得到的结果与未采样的重要术语聚合大不相同。此外,有时采样聚合不会返回任何结果。所以我试图了解采样发生在过程中的哪个点。

如果x 是重要术语聚合中的桶之一,y 是过滤后的语料库的大小,则其显着性度量由 significance of x in subset y = [ (count x in y / size y) / (x in corpus / size corpus) ] * [ (count x in y / size y) - (x in corpus / size corpus) ] 之类的东西给出,根据 JLH 分数的定义。

采样是在过滤之前立即应用于语料库还是应用于过滤后的集合y?我试图理解为什么有时我的采样聚合在我知道应该有一些结果时没有返回任何结果。我还注意到,如果我增加采样器聚合的shard_size 参数,我最终会得到一些结果。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    抱歉迟到了-只是遇到这个问题:)

    significant_terms 聚合默认情况下取决于结果中至少有 3 个术语实例(请参阅 min_doc_count),然后才能确定它可能有用。 如果您的样本量太小,您可能无法满足所选术语的此阈值。如果你有太多的分片,那会让生活变得更加困难,因为它会在网络上传播你的问题的答案。 如果您的查询是模糊的,小样本量是好的——它专注于高质量、高信号的结果。在这里可以清楚地看到这些设置的效果:https://www.youtube.com/watch?v=azP15yvbOBA

    【讨论】:

      猜你喜欢
      • 2015-01-21
      • 2017-10-27
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2021-01-16
      • 2021-06-06
      • 1970-01-01
      • 2021-06-06
      相关资源
      最近更新 更多