elasticsearch 使用嵌套实体中的值聚合Kibana中的实体,elasticsearch,kibana,kibana-4,elasticsearch,Kibana,Kibana 4" /> elasticsearch 使用嵌套实体中的值聚合Kibana中的实体,elasticsearch,kibana,kibana-4,elasticsearch,Kibana,Kibana 4" />

elasticsearch 使用嵌套实体中的值聚合Kibana中的实体

elasticsearch 使用嵌套实体中的值聚合Kibana中的实体,elasticsearch,kibana,kibana-4,elasticsearch,Kibana,Kibana 4,ElasticSearch索引包含一个产品实体。每个产品都有一组组件实体。 组件可能包含可选的outOfStock字段 给出以下示例: "Product": "name": "blue_toy" "Components": [ { "partnumber": "100" "supplier": "smith and sons" "outOfStock": "true" } { "partnumber"

ElasticSearch索引包含一个
产品
实体。每个产品都有一组
组件
实体。 组件可能包含可选的
outOfStock
字段

给出以下示例:

"Product": 
   "name": "blue_toy"
   "Components": [
    {
       "partnumber": "100"
       "supplier": "smith and sons"
       "outOfStock": "true"
    }

    {
       "partnumber": "200"
       "supplier": "smith and sons"

    }]
}


"Product": 
   "name": "green_toy"
   "Components": [
    {
       "partnumber": "300"
       "supplier": "smith and sons"
    }]
}
无法生成蓝色玩具,因为一个零件不可用

我想在图表中显示有多少产品无法生产,而不是可以生产的数量

考虑到即使一个组件不可用,也无法构建整个产品,在上面的示例中,分配的比例为50%-50%

请注意,这与整个集合中有多少组件是库存的(即33%-66%)不同

本质上,问题是如何根据一个嵌套实体的内容标记或标记根实体

在基巴纳怎么能这样


谢谢

我不知道它是否适合您的示例,但我曾经遇到过一个类似的问题,我用“copy_to”参数解决了这个问题

在您的示例中,您必须更改产品的映射,以便将“copy_to”添加到“outOfStock”字段中

它将在根文档中创建一个字段(使用指定的名称),并使用“outOfStock”值

此字段将在索引时添加,您可以说,如果“copy_to”创建的字段为“true”,则无法生成产品

见: