ElasticSearch十二--ES--显式mapping 的设置和各个参数详解

显式mapping

设置mapping

指令

PUT {index}
{
  "mappings":{
    "properties":{                 //设置mapping
      "job_name":{
        "type":"text"
      }
    }                                 
  }
}

自定义Mapping

可以参考 API 手册,纯手写

也可以复制现有的动态Mapping:

  • 创建一个临时的index,写入一些样本数据
  • 通过访问 Mapping API 获得该临时文件的动态 Mapping 定义
  • 修改后,使用该配置创建你的索引
  • 删除临时索引

index

index 控制当前字段是否被索引。默认为true,如果设置成false,就不会被索引,不能被搜索。

优点:不会建立倒排索引,更节省内存空间
缺点:该字段不能被搜索

指令

PUT {index}
{
  "mappings":{
    "properties":{                 //设置mapping
      "job_name":{
        "type":"text",
        "index":false             //这里设置false,这个字段就不能被搜索
      }
    }                                 
  }
}

index options

有四种不同级别的 index options 配置,可以控制倒排索引记录的内容

  • docs - 记录 doc id
  • freqs - 记录 doc id 和 term frequencies
  • positions - 记录 doc id / term frequencies / term position
  • offsets - 记录 doc id / term frequencies / term position / character offects

Text类型默认记录 positions ,其他默认为 docs

记录内容越多,占用存储空间越大。

指令

PUT {index}
{
  "mappings":{
    "properties":{                 //设置mapping
      "job_name":{
        "type":"text",
        "index_options":"offsets"             //这里设置index_options
      }
    }                                 
  }
}

null value

如果需要对 NULL 值进行搜搜,那么只有 Keyword 类型支持设定 null_value

指令

PUT {index}
{
  "mappings":{
    "properties":{                 //设置mapping
      "job_name":{
        "type":"text",
        "null_value":"NULL"             //这里设置null_value
      }
    }                                 
  }
}

copy_to

copy_to 相当于以前的 _all 。可以满足一些特定的搜索需求。copy_to 将字段的数值拷贝到目标字段,实现类似_all的作用。copy_to的目标字段不会出现在_source中

指令

PUT {index}
{
  "mappings":{
    "properties":{                 //设置mapping
      "job_name":{
        "type":"text",
        "copy_to":"fullName"             //这里设置copy_to
      }
    }                                 
  }
}

数组类型

ES不提供专门的数组类型。但是任何字段,都可以包含多个相同类型的数值。

指令

PUT test_home/_doc/1
{
  "job_name":"php",
  "city":[
    "北京市","上海市"
  ]
}

可以看到 city 就是一个数组。但是如果查看 mapping 会发现 city 是一个 text/Keyword 类型。

极客时间 ES 学习笔记

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值