elasticsearch:获取所有属于父代或孙代的文档

9udxz4iz  于 2023-05-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(187)

我正在尝试搜索功能,让我得到所有的文件有关的父显示出现。
例如:父母-〉子女-〉孙子女-〉孙子女
如果搜索子项,则应显示的结果文档为:孩子,孙子和孙子。
如果搜索孙代,则应显示的结果文档为:孙子和外孙。
我只找到了一种方法来找到和显示孩子和父母,但显示孙子,孩子和父母是我卡住的地方。
这是搜索子对象的代码

get /mls/_search
{
    "query": {
        "parent_id": {
            "type": "child",
            "id": "1"
        }
    }
}

然而,它现在也显示了孙子。

x9ybnkn6

x9ybnkn61#

您可以尝试has_child查询来获取与父相关的所有文档。该查询首先查找具有子类型document的所有文档,然后查找与孙和孙相关的所有文档。不要忘记根据Map中的需要替换查询!

GET /mls/_search
{
  "query": {
    "has_child": {
      "type": "child",
      "query": {
        "has_child": {
          "type": "grandchild",
          "query": {
            "has_child": {
              "type": "grand-grandchild"
            }
          }
        }
      }
    }
  }
}

相关问题