Elasticsearch 获取所有没有孩子的父母

Kir*_*sev 3 elasticsearch

最初,我一直试图获取一份父母名单以及他们每个人最近的一个孩子。我已经想出了如何使用以下查询来做到这一点

\n\n
{"query": \n  {"has_child": \n    {"inner_hits": \n      {"name": "latest", "size": 1, "sort":\n        [{"started_at": {"order": "desc"}}]\n      }, \n     "type": "child_type", \n     "query": {"match_all": {}}\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但问题是 \xe2\x80\x94 结果不包括没有孩子的父母。添加min_children: 0也没有帮助。所以我想我可以对所有没有孩子的父母进行查询,并将这两个查询合并到一个OR查询中。但我在构建这样的查询时遇到了麻烦。如有任何建议,将不胜感激。

\n

Tar*_*hut 5

这是您的查询:

    {
      "query":{
        "bool":{
          "should":[
            {
              "bool":{
                "must_not":[
                  {
                    "has_child":{
                      "type":"child_type",
                      "query":{
                        "match_all":{}
                      }
                    }
                  }
                ]
              }
            },
            {
              "has_child":{
                "inner_hits":{
                  "name":"latest",
                  "size":1, "sort":[{"started_at": {"order": "desc"}}]
                },
                "type":"child_type",
                "query":{
                  "match_all":{}
                }
              }
            }
          ]
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)