【问题标题】:How to set the number of intervals in an elasticsearch histogram如何在弹性搜索直方图中设置间隔数
【发布时间】:2012-05-16 01:11:00
【问题描述】:

使用 elasticsearch,我想在我的模型中获取价格字段的直方图方面。在事先不知道最低和最高价格的情况下,我希望直方图覆盖整个价格范围,间隔一定数量,比如 10。我可以从文档中看到

http://www.elasticsearch.org/guide/reference/api/search/facets/histogram-facet.html

我可以指定每个区间的价格范围,但这会给我一些未指定的区间数。我希望有一些特定数量的间隔,它们均匀地覆盖价格字段的整个值范围。有没有办法做到这一点?

我知道一种解决方案可能是在我的数据库中查询最小值和最大值,然后计算出适当的间隔大小,但这违背了使用 elasticsearch 的要点之一,即不必点击用于搜索相关查询的数据库。

【问题讨论】:

    标签: histogram elasticsearch faceted-search facet


    【解决方案1】:

    您可以使用 Statistical Facet 查询 elasticsearch 的最小值和最大值

    【讨论】:

    • 啊,所以你是说针对 ES 做两个查询?有没有办法在一个查询中做到这一点?
    • 是的,我认为使用单个查询是不可能的。当 elasticsearch 在不同的分片上处理分面时,它需要知道每个分面属于哪个桶,并且桶在所有分片中必须相同。因此,即使这个查询是在 elasticsearch 中实现的,elasticsearch 也必须在内部执行两个查询——首先它必须计算出所有分片的最小值和最大值,然后计算每个桶中的分面数。
    • 非常感谢您的解释。这是有道理的。
    【解决方案2】:

    您可以在https://github.com/elastic/elasticsearch/issues/31828 跟踪此功能的实施进度,称为auto_histogram

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多