小皮博客 | Xiaopi's Blog

74-elastic-search索引映射

elastic search的映射类似于关系型数据库里面的字段映射。对数据结构的定义。

  • 映射可以分为静态映射和动态映射。
  • dynamic属性为 true动态添加字段,false:忽略新字段,strict: 碰到陌生字段抛出异常。
  • 字段类型
    • string 字符串
    • integer 数字
    • long 64bit整形
    • float 32bit小数
    • double 64bit浮点型
    • bool 布尔型
    • date 日期
    • binary 二进制
  • 一个示例

    POST /[indexName]
    {
      "settings": {
          "number_of_shards" : 5,
          "number_of_replicas" : 1
      },
      "mappings: {
          "books" : { # type
              "properties": {
                  "title":{
                      "type":"string"
                  },
                  "name": {
                      "type":"string",
                      "index":"not_analyzed"
                  },
                  "publish_date": {
                      "type":"date",
                      "index":"not_analyzed"
                  },
                  "number": {
                      "type":"object",
                      "dynamic": true
                  }
              }
          }
      }
    }                                    
    
  • 获取映射

    GET [indexName]/_mapping

  • 获取index为library,type为books的映射

    GET library/_mapping/books

  • 获取集群内所有的映射信息

    GET /_all/_mapping/

  • 获取集群内多个映射信息

    GET /_all/_mapping/books,bank_account

  • 删除映射和以上相同

    DELETE /library/books
    DELETE /library/bookes/_mapping
    DELETE /library/_mapping/book, bank_account

  • 无法修改已经存在的mapping映射
    • 重新建立一个索引,然后重新定义映射
    • 把之前索引里的数据导入到新的索引里。
  • 修改索引动作
    • 运行 PUT /[现有indexName]/_alias/[indexAliasName]
    • 新建一个索引,定义好新的映射
    • 别名指向新索引
      POST /_aliases
      {
        "actions":[
            {"remove" : {"index":"现有indexName","alias":"indexAliasName"}},
            {"add": {"index":"新索引Name","alias":"indexAliasName"}}
        ]
      }
      
  • 修改字段只能通过新建索引的方式
    • 先创建索引,修改字段
      PUT [indexName]
      {
        "mappings": {
            "typeName":{
                "properties": {
                    "date" {
                        "type":"date",
                        "format": "yyyy-MM-dd"
                    }
                }
            }
        }
      }
      
    • 将数据复制过去

      POST _reindex
      {
      “source”:{
      "index": "metricbeat-*"(老索引名)
      
      },
      “dest”: {
      "index": "metricbeat" (新索引名)
      
      }
      }

版权声明

本文标题:74-elastic-search索引映射

文章作者:盛领

发布时间:2018年10月20日 - 08:28:05

原始链接:http://blog.xiaoyuyu.net/post/b972e990.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com

盛领 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!