max_children为0可以在elasticsearch has_child查询中使用吗?

时间:2015-12-28 17:11:42

标签: elasticsearch

我希望能够选择没有任何符合特定标准的孩子的父母。我想如果我做了:

        {
          "has_child": {
            "max_children": 0,
            "type": "event",
            "filter": {
              "bool": {
                "must": [
                  {
                    "bool": {
                      "must": [
                        {
                          "term": {
                            "cs_e": "eventF"
                          }
                        }
                      ],
                      "should": [],
                      "mustNot": []
                    }
                  }
                ],
                "should": [],
                "mustNot": []
              }
            }
          }
        }
然后,这将使我最多只有0个孩子的父母 - 即不匹配的父母。然而,奇怪的是,我确实从查询中获得了一个父级,并且该父级有一个匹配的子级。

这是预期的吗? (可能我搞砸了某个地方或被误解了)?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在ES 5.0"

中发现了这一点

https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_search_changes.html

  

当has_child查询的max_children参数设置为0时   那么允许的子文件数量没有上限   匹配。现在,0确实意味着允许零子文档。   如果不需要上限,则max_children参数不应该   完全指定。

所以在ES> 5.0中它应该可以工作,但由于某些原因,max_children = 0确实不能在5.3.0中工作