【问题标题】:Exact Cardinality for Elasticsearch documentsElasticsearch 文档的精确基数
【发布时间】:2020-02-27 21:04:31
【问题描述】:

我想了解 elasticsearch 用于唯一计数的算法 (hyperloglog++)。

将精度阈值设置为特定值是否可以让我在不考虑内存限制的情况下准确地计算到该阈值?

算法是否使用线性计数器达到精度阈值,然后切换到超日志计数器?

【问题讨论】:

    标签: elasticsearch elastic-stack


    【解决方案1】:

    是的,它在哈希表中使用线性计数,直到精度阈值。你也可以在relevant code看到。

    但请记住,默认精度阈值为 3,000,您最多可以将其设置为 40,000。设置更高的值实际上会将其上限设置为 40,000。所以对于更高的基数没有确切的结果。

    【讨论】:

    • 非常感谢。所以,我会得到确切的计数 = 阈值高达 40,000 对吗?
    • 是的,如果您将精度阈值设置为该值。否则默认最多 3,000 个。
    • 好的,但是 doco 不承诺。所以理论上,行为可能随时改变。 “precision_threshold...低于哪个计数预计将接近准确。” elastic.co/guide/en/elasticsearch/reference/current/…
    • discuss.elastic.co/t/… 从写代码的同事那里得到了更好的描述。虽然很难预测变化,但我认为这些变化只会发生在主要版本中,但你必须查看发行说明(在任何情况下你都不应该在主要版本中这样做?)
    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多