ElasticSearch:计算产品属性

时间:2014-10-08 11:01:10

标签: elasticsearch faceted-search

我有一个数据类型'产品'它具有字段属性' (动态对象)。 例如,产品可以包含:

attributes: {
    "color": "White",
    "size": "L",
}

另一种产品可以包含

attributes: {
    "color": "Black",
    "weight": "12 kg",
}

因此,属性集不是固定的。

我的目标是对找到的产品的所有属性进行分面搜索。 我找到了一种在“聚合”中手动定义每个属性的方法。部分:

"aggregations": {
    "attribute_color": {
        "terms": {
            "field": "attributes.color"
        }
    },
    "attribute_size": {
        "terms": {
            "field": "attributes.size"
        }
    )
}

但我事先并不知道会找到哪些属性,所以我想动态制作这个列表。 我假设这可以通过两个步骤完成:找到所有属性键(颜色,大小,重量等),然后对这些字段进行聚合查询。 那么问题是如何从搜索结果中获取所有属性键?

如果我错了,可以一步完成,请指出正确的解决方案。 谢谢!

0 个答案:

没有答案