欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

elasticsearch mapping

程序员文章站 2022-07-05 14:00:39
...

mapping类似于数据库中的表结构定义:

定义index下的字段名

定义字段类型,比如数值型、浮点型、布尔型等

定义倒排索引相关的设置,比如是否索引、记录position等

查看mapping

GET /[index]/_mapping
mapping中的字段类型一旦设置,禁止直接修改,因为 lucene实现的倒排索引生成后不允许修改,应该重新建立新的索引,然后做reindex操作,但是可以新增字段,通过 dynamic 参数来控制:

dynamic:true:允许新增字段
dynamic:false:忽略新的字段。在原有的映射基础上,当有新的字段时,不会主动的添加新的映射关系,只作 
               为查询结果出现在查询中
dynamic:strict:严格模式,文档不能写入,如果遇到新的字段,就抛出异常

严格报错:

{
  "error": {
    "root_cause": [
      {
        "type": "strict_dynamic_mapping_exception",
        "reason": "mapping set to strict, dynamic introduction of [test] within [doc] is not allowed"
      }
    ],
  "status": 400
}

 

  •  当在es中存储了一些不想要被检索的字段如身份证、手机等,这是对于这些字段就可以使用index设置为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 offsets

text类型的默认配置为positions,其他默认为docs。记录的内容越多,占据的空间越大。

上一篇: ES6入门

下一篇: es入门