你知道ES的Nested类型吗?

7 篇文章 1 订阅

基础知识请搜索其他博客,本文只讲实际操作。

场景:当需要存储关系对象时 比如 一个博客下有多个评论

    1. 主要解决对象关系存储
    2. 需要手动指定索引各字段的类型 并指定关系对象为nested类型
    3. 注意只能在新建索引时指定好否则后续不能修改,需要通过删除索引 重建

{

  "mappings": {

    "blog": {

      "properties": {

        "title": {

          "type": "text"

        },

        "body": {

          "type": "text"

        },

        "tags": {

          "type": "keyword"

        },

        "published_on": {

          "type": "keyword"

        },

        "comments": {

          "type": "nested",

          "properties": {

            "name": {

              "type": "text"

            },

            "comment": {

              "type": "text"

            },

            "age": {

              "type": "short"

            },

            "rating": {

              "type": "short"

            },

            "commented_on": {

              "type": "text"

            }

          }

        }

      }

    }

  }

}

    1. 查询

{

  "query": {

    "bool": {

      "must": [

        {

          "nested": {

            "path": "comments",

            "query": {

              "bool": {

                "must": [

                  {

                    "match": {

                      "comments.name": "john"

                    }

                  },

                  {

                    "match": {

                      "comments.age": 38

                    }

                  }

                ]

              }

            }

          }

        }

      ]

    }

  }

}

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值