【问题标题】:Elasticsearch aggregationsElasticsearch 聚合
【发布时间】:2014-11-18 22:22:33
【问题描述】:

我正在尝试使用 elasticsearch 构建类别钻取。

我在显示类别计数时遇到问题。

如果我运行这个查询(红色,休闲裤),类别聚合将只显示休闲的计数。 我可以在单个查询中检索其他类别计数吗(例如鞋子、牛仔裤、连衣裙)

过滤器示例:

颜色:

-红色(选择为布尔查询词)

分类:

Shoes
Pants
    -Jeans
    - Casual (selected as a bool query term)
Dresses

【问题讨论】:

    标签: elasticsearch facets drilldown


    【解决方案1】:

    如果我理解得很好,您似乎需要计算所有类别的聚合,然后对其进行过滤以一次仅显示一个类别。

    这可以使用post_filter 来实现(参见documentation)。它是一个过滤器,在计算聚合后应用。

    在你的情况下,而不是像这样查询:

    {
      "query": {
        "bool": {
          "must": [
            {"term": {"color": "red"} },
            {"term": {"category": "casual"}}
            ....
          ]
        }
      }, 
      "aggs": {
        ...
      }
    }
    

    你用这个:

    {
      "query": {
        "bool": {
          "must": [
            {"term": {"color": "red"} }
            ...
          ]
        }
      }, 
      "aggs": {
        ...
      },
      "post_filter": {
        {"term": {"category": "casual"}}
      }
    }
    

    并且在计算聚合时不会考虑category 上的term 过滤器。

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 2018-06-17
      • 2022-01-15
      相关资源
      最近更新 更多