【问题标题】:Facets for nested tree with ElasticSearch带有 ElasticSearch 的嵌套树的构面
【发布时间】:2014-08-29 21:55:33
【问题描述】:

我是 ElasticSearch 的新手,所以我需要一些帮助。

我有一个查询要搜索products,它可以属于许多categoriesCategories 组合成一个嵌套树。

示例数据:

categories: [
  {
    id: 1,
    name: 'First category',
    categories:[
      {
        id: 12,
        name: 'First subcategory'
      },
      {
        id: 13,
        name: 'Second subcategory'
      }
    ]
  },
  {
    id: 2,
    name: 'Second category'
  }
],
products: [
  {
    id: 1,
    name: 'First product',
    categories_ids: [2, 12]
  },
  {
    id: 2,
    name: 'Second product',
    categories_ids: [1]
  }
]

除了搜索结果之外,我还需要获取 categories 树,包括每个 category 中的搜索结果数量(不包括没有任何搜索结果的类别)。

对于上面的例子应该是:

  • 第一类 (2)
    • 第一个子类别 (1)
  • 第二类 (1)

有人可以解释如何使用 ElasticSearch 的聚合来做到这一点吗?

谢谢。

【问题讨论】:

  • 你有多少个类别级别?

标签: elasticsearch aggregation facets


【解决方案1】:
【解决方案2】:

我认为您正在寻找与此相关的东西:

{
  "aggs": {
    "category_agg": {
      "terms": {
        "field": "category_name"
      },
      "aggs": {
        "sub_category_agg": {
          "terms": {
            "field": "sub_category"
          },
          "filter": {
            "term": {
              "sub_category": "First subcategory"
            }
          }
        }
      }
    }
  }
}

根据需要应用过滤器(或省略),并确保您进行聚合的字段(本示例中为category_name 和 subcategory_name)未被分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2023-03-10
    • 2017-04-20
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多