带有 ElasticSearch 的嵌套树的构面
Posted
技术标签:
【中文标题】带有 ElasticSearch 的嵌套树的构面【英文标题】:Facets for nested tree with ElasticSearch 【发布时间】:2014-08-29 21:55:33 【问题描述】:我是 ElasticSearch 的新手,所以我需要一些帮助。
我有一个查询要搜索products
,它可以属于许多categories
。 Categories
组合成一个嵌套树。
示例数据:
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 的聚合来做到这一点吗?
谢谢。
【问题讨论】:
你有多少个类别级别? 【参考方案1】:我有类似的需求并使用了嵌套对象。这是那个线程
How to narrow down the current aggregation context to a specific scope within set of documents returned from Filter Aggregation?
【讨论】:
【参考方案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)未被分析。
【讨论】:
以上是关于带有 ElasticSearch 的嵌套树的构面的主要内容,如果未能解决你的问题,请参考以下文章
在 ggplot2 facet_grid 中旋转切换的构面标签