ElasticSearch 2.1.0-具有“和”量度的深度“子级”聚合返回空结果

m

我有两个层次的文档类型层次结构。这些文档通过父子关系进行关联,如下所示:category > sub_category > item,即每个sub_category都有一个_parent引用类别ID字段,而每个item都有一个_parent引用sub_category id字段

每个项目都有一个price字段。给定一个类别查询,其中包括子类别和项目的条件,我想计算每个sub_category的总价

我的查询看起来像这样:

{
    "query": {
        "has_child": {
            "child_type": "sub_category",
            "query": {
                "has_child": {
                    "child_type": "item",
                    "query": {
                        "range": {
                            "price": {
                                "gte": 100,
                                "lte": 150
                            }
                        }
                    }
                }
            }
        }
    }
}

我计算每个子类别价格的汇总如下所示:

{
    "aggs": {
        "categories": {
            "terms": {
                "field": "id"
            },
            "aggs": {
                "sub_categories": {
                    "children": {
                        "type": "sub_category"
                    },
                    "aggs": {
                        "sub_category_ids": {
                            "terms": {
                                "field": "id"
                            },
                            "aggs": {
                                "items": {
                                    "children": {
                                        "type": "item"
                                    },
                                    "aggs": {
                                        "price": {
                                            "sum": {
                                                "field": "price"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

尽管查询响应列出了匹配结果,但聚合响应不匹配任何项目:

{
    "aggregations": {
        "categories": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "category1",
                    "doc_count": 1,
                    "sub_categories": {
                        "doc_count": 3,
                        "sub_category_ids": {
                            "doc_count_error_upper_bound": 0,
                            "sum_other_doc_count": 0,
                            "buckets": [
                                {
                                    "key": "subcat1",
                                    "doc_count": 1,
                                    "items": {
                                        "doc_count": 0,
                                        "price": {
                                            "value": 0
                                        }
                                    }
                                },
                                {
                                    "key": "subcat2",
                                    "doc_count": 1,
                                    "items": {
                                        "doc_count": 0,
                                        "price": {
                                            "value": 0
                                        }
                                    }
                                },
                                {
                                    "key": "subcat3",
                                    "doc_count": 1,
                                    "items": {
                                        "doc_count": 0,
                                        "price": {
                                            "value": 0
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }]
            }
        }
    }

但是,省略sub_category_ids汇总确实会导致项目出现,并且价格会在汇总级别进行categories汇总。我希望包括sub_category_ids汇总在内仅更改价格总和的水平。

我是否误解了汇总的评估方式,如果是这样,我如何修改它以显示每个子类别的汇总价格?

金丹莎(ChintanShah)25

我打开了一个问题#15413children aggregation因为我和其他人都面临着类似的问题ES 2.0

显然,根据ES开发人员@martijnvg的问题是

子级agg做出一个假设(子级agg正在查看所有段)在1.x中是正确的,但在2.x中不是。

PR#15457再次从@martijnvg修复了此问题

在我们仅评估在父级汇总中产生匹配项的细分之前,这导致我们错过了在没有父级匹配项的细分中评估子文档的机会。

解决此问题的方法是,不再记得我们匹配的细分市场,而只需评估所有细分市场即可。这使代码更简单,我们仍然可以快速查看段是否不像以前那样保存子文档。

此拉取请求已合并,并且也已回移植2.x, 2.1 and 2.0 branches

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ElasticSearch在0和1之间获得评分?

来自分类Dev

更改黑白ElasticSearch 1.x和2.x

来自分类Dev

如何定义一个列表,该列表的结果为序列[(0,0),(1,0),(2,0),(3,0)等]和[(0,0),(0,1 ),(0,2),(0,3)等]

来自分类Dev

在R中将(0,1,0,0,1,1,1)转换为(0,0,0,1,0,1,2)

来自分类Dev

创建序列0、0、0、0、0、1、1、1、1、1、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4 ,带有seq()的4

来自分类Dev

numpy-是否有办法在arr [1,[0,2,0,2,0]] + = 1处引起多个增量

来自分类Dev

[0,1,2,3,4]和[[0],[1],[2],[3],[4]]和有什么区别?

来自分类Dev

如何基于2列数据帧创建具有1和0的矩阵

来自分类Dev

索引 = 2 不在 [0, 1)

来自分类Dev

0..3和[0,1,2] .iter()之间的差异

来自分类Dev

用0和1创建2D数组

来自分类Dev

什么是0、1和2以外的文件描述符

来自分类Dev

仅包含0,1和2的数组排序

来自分类Dev

给定一个仅包含0、1或2s的字符串,请计算具有相等数量的0s,1s和2s的子字符串的数量

来自分类Dev

为什么Julia>(1,2,3)返回(1,2,0)

来自分类Dev

IEEE-754的float,double和quad是否保证精确表示-2,-1,-0、0、1、2?

来自分类Dev

Elasticsearch 的布尔搜索模糊查询 - 意外结果 - "Word1" AND "Word2" ~3

来自分类Dev

获取所有数组的排列[1,1,1,1,1,0,0,0,0]

来自分类Dev

当使用quicksort对具有不同键的N个项的数组进行排序时,大小为0、1和2的子数组的预期数量是多少?

来自分类Dev

[$的含义?== 1] &&返回0

来自分类Dev

elasticsearch中的搜索查询,其返回与value_1或value_2匹配但不与之匹配的结果

来自分类Dev

python itertools.product错误地将结果赋予为[[['x'],),([0,1],),([0,1,2],)]

来自分类Dev

检查2个表是否具有相同的ID,如果表2中存在表1中的ID,则在列中返回1/0

来自分类Dev

使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

来自分类Dev

在R ggplot2中,包括stat_ecdf()端点(0,0)和(1,1)

来自分类Dev

代字号运算符分别返回-1,-2而不是0、1

来自分类Dev

提取包含0 | 0,0 | 1,1 | 0和1 | 1的文件

来自分类Dev

有什么办法可以循环通过这些数字:-1 0、1 0、0 -1、0 1

来自分类Dev

diff file1 和 file2 的输出中的 `0a1`

Related 相关文章

  1. 1

    如何使用ElasticSearch在0和1之间获得评分?

  2. 2

    更改黑白ElasticSearch 1.x和2.x

  3. 3

    如何定义一个列表,该列表的结果为序列[(0,0),(1,0),(2,0),(3,0)等]和[(0,0),(0,1 ),(0,2),(0,3)等]

  4. 4

    在R中将(0,1,0,0,1,1,1)转换为(0,0,0,1,0,1,2)

  5. 5

    创建序列0、0、0、0、0、1、1、1、1、1、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4 ,带有seq()的4

  6. 6

    numpy-是否有办法在arr [1,[0,2,0,2,0]] + = 1处引起多个增量

  7. 7

    [0,1,2,3,4]和[[0],[1],[2],[3],[4]]和有什么区别?

  8. 8

    如何基于2列数据帧创建具有1和0的矩阵

  9. 9

    索引 = 2 不在 [0, 1)

  10. 10

    0..3和[0,1,2] .iter()之间的差异

  11. 11

    用0和1创建2D数组

  12. 12

    什么是0、1和2以外的文件描述符

  13. 13

    仅包含0,1和2的数组排序

  14. 14

    给定一个仅包含0、1或2s的字符串,请计算具有相等数量的0s,1s和2s的子字符串的数量

  15. 15

    为什么Julia>(1,2,3)返回(1,2,0)

  16. 16

    IEEE-754的float,double和quad是否保证精确表示-2,-1,-0、0、1、2?

  17. 17

    Elasticsearch 的布尔搜索模糊查询 - 意外结果 - "Word1" AND "Word2" ~3

  18. 18

    获取所有数组的排列[1,1,1,1,1,0,0,0,0]

  19. 19

    当使用quicksort对具有不同键的N个项的数组进行排序时,大小为0、1和2的子数组的预期数量是多少?

  20. 20

    [$的含义?== 1] &&返回0

  21. 21

    elasticsearch中的搜索查询,其返回与value_1或value_2匹配但不与之匹配的结果

  22. 22

    python itertools.product错误地将结果赋予为[[['x'],),([0,1],),([0,1,2],)]

  23. 23

    检查2个表是否具有相同的ID,如果表2中存在表1中的ID,则在列中返回1/0

  24. 24

    使用Scala收集方法可帮助将[0,0,0,1,1,1,1,0,0,1,1]的列表转换为[3,4,2,2]

  25. 25

    在R ggplot2中,包括stat_ecdf()端点(0,0)和(1,1)

  26. 26

    代字号运算符分别返回-1,-2而不是0、1

  27. 27

    提取包含0 | 0,0 | 1,1 | 0和1 | 1的文件

  28. 28

    有什么办法可以循环通过这些数字:-1 0、1 0、0 -1、0 1

  29. 29

    diff file1 和 file2 的输出中的 `0a1`

热门标签

归档