Агрегация детей нарушена в Elasticsearch 2.1?

При исследовании проблемы в этом вопросе я заметил, что кажется быть ошибкой в ​​Elasticsearch 2.1.

Я пропустил одно из критических изменений, или это настоящая ошибка?

С этой настройкой:

PUT /test_index
{
    "mappings": {
        "parent_doc": {
            "properties": {
                "name": {
                    "type": "string",
                    "index": "not_analyzed"
                },
                "town": {
                    "type": "string",
                    "index": "not_analyzed"
                }
            }
        },
        "child_doc": {
            "_parent": {
               "type": "parent_doc"
            }, 
            "properties": {
                "name": {
                    "type": "string",
                    "index": "not_analyzed"
                },
                "age": {
                    "type": "integer"
                }
            }
        }
    }
}

POST /test_index/parent_doc/_bulk
{"index":{"_id":1}}
{"name":"Bob","town":"Memphis"}
{"index":{"_id":2}}
{"name":"Alice","town":"Chicago"}
{"index":{"_id":3}}
{"name":"Bill","town":"Chicago"}

POST /test_index/child_doc/_bulk
{"index":{"_id":3,"_parent":1}}
{"name":"Jill","age":5}
{"index":{"_id":4,"_parent":1}}
{"name":"Joey","age":3}
{"index":{"_id":5,"_parent":2}}
{"name":"John","age":2}
{"index":{"_id":6,"_parent":3}}
{"name":"Betty","age":6}
{"index":{"_id":7,"_parent":3}}
{"name":"Dan","age":1}

Когда я запускаю следующий запрос в ES 1.7.3, я получаю ожидаемый результат:

POST /test_index/parent_doc/_search
{
   "size": 0,
   "aggs": {
      "towns": {
         "terms": {
            "field": "town"
         },
         "aggs": {
            "parent_names": {
               "terms": {
                  "field": "name"
               },
               "aggs": {
                  "child_docs": {
                     "children": {
                        "type": "child_doc"
                     }
                  }
               }
            }
         }
      }
   }
}

результат (ES 1.7.3):

{
   "took": 8,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 3,
      "max_score": 0,
      "hits": []
   },
   "aggregations": {
      "towns": {
         "doc_count_error_upper_bound": 0,
         "sum_other_doc_count": 0,
         "buckets": [
            {
               "key": "Chicago",
               "doc_count": 2,
               "parent_names": {
                  "doc_count_error_upper_bound": 0,
                  "sum_other_doc_count": 0,
                  "buckets": [
                     {
                        "key": "Alice",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 1
                        }
                     },
                     {
                        "key": "Bill",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 2
                        }
                     }
                  ]
               }
            },
            {
               "key": "Memphis",
               "doc_count": 1,
               "parent_names": {
                  "doc_count_error_upper_bound": 0,
                  "sum_other_doc_count": 0,
                  "buckets": [
                     {
                        "key": "Bob",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 2
                        }
                     }
                  ]
               }
            }
         ]
      }
   }
}

Однако когда я запускаю тот же код в ES 2.1.0, я получаю следующее:

{
   "took": 12,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 3,
      "max_score": 0,
      "hits": []
   },
   "aggregations": {
      "towns": {
         "doc_count_error_upper_bound": 0,
         "sum_other_doc_count": 0,
         "buckets": [
            {
               "key": "Chicago",
               "doc_count": 2,
               "parent_names": {
                  "doc_count_error_upper_bound": 0,
                  "sum_other_doc_count": 0,
                  "buckets": [
                     {
                        "key": "Alice",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 0
                        }
                     },
                     {
                        "key": "Bill",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 0
                        }
                     }
                  ]
               }
            },
            {
               "key": "Memphis",
               "doc_count": 1,
               "parent_names": {
                  "doc_count_error_upper_bound": 0,
                  "sum_other_doc_count": 0,
                  "buckets": [
                     {
                        "key": "Bob",
                        "doc_count": 1,
                        "child_docs": {
                           "doc_count": 0
                        }
                     }
                  ]
               }
            }
         ]
      }
   }
}

Вот код, который я использовал:

http://sense.qbox.io/gist/70b2b39e6611a39480bd922804177e0e3d201f5a


person Sloan Ahrens    schedule 03.12.2015    source источник
comment
Интересно. Он ведет себя так же с 2.0.X?   -  person Val    schedule 04.12.2015
comment
Можете ли вы выделить разницу в выходе 2 версий?   -  person shantanuo    schedule 04.12.2015
comment
С 2.0.X не пробовал. Когда я переустановил вчера, я получил новую версию, не вернулся, чтобы снова попробовать 2.0.0. Я постараюсь проверить это сегодня.   -  person Sloan Ahrens    schedule 04.12.2015
comment
Разница в выводе заключается в том, что все "child_docs""doc_count" равны нулю в ES 2.1, но не равны нулю в 1.7.3.   -  person Sloan Ahrens    schedule 04.12.2015
comment
даже я пробовал, и он дает неверные результаты в 2.0, я открыл проблему и сослались на этот вопрос в одном из комментариев, давайте посмотрим, что говорят об этом люди из ES.   -  person ChintanShah25    schedule 15.12.2015
comment
Подтверждено, что это ошибка   -  person ChintanShah25    schedule 15.12.2015