当前位置:   article > 正文

elasticsearch 父子查询,必须同时满足条件_es8父子类型 join同时查

es8父子类型 join同时查
  1. 创建索引
PUT ellistest
{
  "mappings": {
    "properties": {
      "a":{
        "type": "wildcard"
      },
      "b":{
        "type": "wildcard"
      },
      "my_join_field": { 
          "type": "join",
          "relations": {
            "question": "answer" 
          }
        }
  }
}
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

这段代码建立了一个ellistest的索引,其中my_join_field是一个用于join的字段,type为join,关系relations为:父为question, 子为answer
至于建立一父多子关系,只需要改为数组即可:“question”: [“answer”, “comment”]

  1. 添加父数据
PUT ellistest/_doc/1
{
  "a":"一个",
  "my_join_field":"question"
}


PUT ellistest/_doc/2
{
  "a":"两个",
  "my_join_field":"question"
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 添加子文档数据
PUT ellistest/_doc/3?routing=1
{
  "b":"一个问题的答案",
  "my_join_field": {
    "name": "answer",
    "parent": "1"
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

子文档的插入语法如下,注意routing是父文档的id,平时我们插入文档时routing的默认就是id
此时name为answer,表示这是个子文档

  1. 父子同时满足条件查询
GET ellistest/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "has_parent": {
            "parent_type": "question",
            "query": {
              "term": {
                "a": {
                  "value": "一个"
                }
              }
            }
          }
        },{
          "term": {
            "b": {
              "value": "一个问题的答案"
            }
          }
        }
      ]
    }
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

参考
https://greedypirate.github.io/2019/09/27/ElasticSearch7-2-%E7%88%B6%E5%AD%90%E6%96%87%E6%A1%A3/#has-child%E6%9F%A5%E8%AF%A2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/456727
推荐阅读
相关标签
  

闽ICP备14008679号