当前位置: 首页 > 面试题库 >

如何在Elasticsearch中搜索具有相同父ID的子文档?

仲高超
2023-03-14
问题内容

映射:

    {
      "mappings": {
        "branch": {},
        "employee": {
          "_parent": {
            "type": "branch"
          }
        }
      }
   }

分行文件:

{ "index": { "_id": "london" }}
{ "name": "London Westminster", "city": "London", "country": "UK" }
{ "index": { "_id": "liverpool" }}
{ "name": "Liverpool Central", "city": "Liverpool", "country": "UK" }
{ "index": { "_id": "paris" }}
{ "name": "Champs Élysées", "city": "Paris", "country": "France" }

员工证件:

{ "index": { "_id": 1, "parent": "london" }}
{ "name": "Alice Smith", "dob": "1970-10-24", "hobby": "hiking" }

{ "index": { "_id": 2, "parent": "london" }}
{ "name": "Mark Thomas", "dob": "1982-05-16", "hobby": "diving" }

{ "index": { "_id": 3, "parent": "liverpool" }}
{ "name": "Barry Smith", "dob": "1979-04-01", "hobby": "hiking" }

{ "index": { "_id": 4, "parent": "paris" }}
{ "name": "Adrien Grand", "dob": "1987-05-11", "hobby": "horses" }

我想查找具有父ID的文档london,我尝试了以下查询:

    {
    "query":{
       "has_parent":{
         "type":"branch",
         "query":{
           "term":{
               "_parent":"london"
           }
         } 
       }
     }

}

但是ES没有返回结果。如何在Elasticsearch中搜索具有相同父ID的子文档?


问题答案:

has_parent在OP。有无效是没有叫父在外地branch类型。

以下是有效查询的示例

{
  "query": {
    "has_parent": {
      "type": "branch", 
      "query": {
        "ids": {
             "values" : ["london"]
        }
      }
    }
  }


 类似资料:
  • 问题内容: 我有一个看起来像这样的架构: 我想找到b的所有值,其中b的值由2个或更多实体共享: 查询依据: 应该返回和。 问题答案: 您可以使用2 的字段对字段进行聚合,然后添加子聚合以找到匹配的字段:

  • 假设一个对象有10个实例,其中有一些字段。其中一个字段指定ID。另外两个字段包含有关位置(纬度和经度)的数据。一个字段包含日期时间信息。 在这10个例子中,ID保持不变,但与日期、时间和位置相关的字段发生了变化。 上述数据是虚拟数据。但你可以观察到id保持不变,只是位置和时间发生了变化。 使用java, sping-data-elasticsearch我能够把信息在弹性搜索。 我面临的问题是,在弹

  • 我是Elasticsearch的新手,我面临一个问题。我的任务是搜索一组文档。例如,我有这样结构的数据: 但是困难的是,我如何获取所有带有project_id=abc的文档,然后通过与关键字“测试”匹配的任何其他字段(代码、名称、状态)搜索它们(例如)。我如何在Elasticsearch查询中做到这一点,请帮助我! 谢谢

  • 问题内容: 假设我要搜索一系列嵌入式文档或子文档,但将它们的父母作为我的结果返回,例如“建筑物和单元”: 现在假设我要退回所有单位> = 1000平方英尺的建筑物。我该怎么做? 问题答案: 将单位大小存储为数组: 并搜索:

  • 问题内容: 我有下表: 我想让Folder类具有父子关系。 问题答案: 我相信正确的映射将是: 该会的工作只有当每个家长有最多一个孩子,上面的代码适用于更一般的情况下,父母可以有许多儿童。另外,为简单起见,我省略了get / set方法。

  • 问题内容: 我想在我存储在Elasticsearch 7.3中的文档中搜索单词 我想要在以前版本的Elasticsearch上工作的示例是: 但是此查询不适用于Elasticsearch 7+,因为已删除。现在该字段消失了,我该如何编写查询以完成相同的任务? 注意:我已经阅读了将所有字段复制到自定义字段中的建议,但是这要求显式地写出每个字段以包括在all_fields字段中。由于我有很多小字段,因