Elasticsearch让所有父母都没有孩子

时间:2016-12-22 12:44:07

标签: elasticsearch

最初我一直试图获得一份父母名单,以及每名父母的最近一个孩子。我已经想过如何使用以下查询

<?php
$server = new SoapServer(null, array('uri' => "http://localhost/namespace"));
$server->setClass('myClass');
$data = file_get_contents('php://input');
$server->handle($data);

但问题是 - 结果不包括没有孩子的父母。添加{"query": {"has_child": {"inner_hits": {"name": "latest", "size": 1, "sort": [{"started_at": {"order": "desc"}}] }, "type": "child_type", "query": {"match_all": {}} } } } 也无济于事。所以我想我可以对没有孩子的所有父母进行查询,并将这两者合并到一个min_children: 0查询中。但是我在构建这样的查询时遇到了麻烦。非常感谢任何建议。

1 个答案:

答案 0 :(得分:3)

以下是您的查询:

    {
      "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":{}
                }
              }
            }
          ]
        }
      }
    }