当前位置: 首页 > 知识库问答 >
问题:

弹性搜索:如何使用父/子内部命中获取所有类型的所有子对象

鲜于意
2023-03-14

我对“内部命中”功能有问题。我只能获得一种类型的子对象,因为我必须为查询指定子对象的类型。

例如,我可以使用以下代码成功获取所有父对象及其“ChildA”对象

{
  "query": {
    "has_child": {
      "type": "ChildA",
      "query": {
        "match_all": {}
      },
      "inner_hits": {}
    }
  }
}

有可能同时获得ChildA和ChildB对象吗?

共有1个答案

唐元青
2023-03-14

您可以使用bool查询将多个has_child查询与inner_hits合并。例如,如果您想找到所有具有“ChildA”或“ChildB”的父母,然后返回他们拥有的所有孩子(无论是ChildA还是ChildB或两者),您可以这样做:

"query": {
  "bool": {
    "should": [
      {
        "has_child": {
          "type": "ChildA",
          "query": {
            "match_all": {}
          },
          "inner_hits": {}
        }
      },
      {
        "has_child": {
          "type": "ChildB",
          "query": {
            "match_all": {}
          },
          "inner_hits": {}
        }
      }
    ]
  }
}
 类似资料:
  • 文档建议使用以下函数删除特定索引: 我已经适应了: 但这给了我以下错误: 我找了几个小时都没有结果,有人有什么想法吗?

  • 我是弹性搜索新手,并且已经完成了类似mykong教程的基本教程 我对创建任何文档的一部分有疑问 创建操作示例插入包含 /mkyong/posts/1001和以下请求数据的新文档: 问题1:-ES是否会在上述文档的所有属性上创建反向索引,即默认情况下的标题/类别/已发布/作者,并提供全文搜索,还是需要明确提及? 问题2:-在上述示例中,我们已经有了唯一的\u id,即。如果我已经将其存储在DB中并生

  • 我们在Liferay中有一个名为发布的自定义实体。它在弹性搜索中建立了索引,并包含一个名为“Journal alArticleId”的字段。 根据我们的搜索要求,如果一些用户在期刊文章中搜索任何关键字,我们必须返回包含相应期刊的“journalArticleId”的发布文档。 我找到了使用Java API实现这个的解决方案,但我正在寻找Liferay API来解决这个问题。 弹性搜索亲子数据搜索J

  • 问题内容: 在带有Python的Selenium中,是否可以将WebElement的所有子级作为列表获取? 问题答案: 是的,您可以通过或实现。 但是,这听起来并不像查找某个元素的 所有子 元素的有效用例。要获得所有直接/间接孩子都是昂贵的手术。请进一步说明您要做什么。应该有更好的方法。

  • 在Selenium和Python中,是否可以将WebElement的所有子元素作为列表?

  • 我试图使用弹性搜索Java API创建两个文档,一个构建另一个的子文档。