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。记录的内容越多,占据的空间越大。
推荐阅读
-
elasticSearch java api接口
-
ElasticStack学习(三):ElasticSearch基本概念
-
docker启动elasticsearch时内存不足问题及解决方法
-
elasticsearch6.7 01.入门指南(2)
-
一文搞懂 Elasticsearch 之 Mapping
-
Install Elasticsearch 5.0 on RHEL / CentOS
-
ElasticSearch 5.2.2 安装问题记录
-
解决Elasticsearch因jdk版本问题启动失败的问题
-
elasticsearch-Elasticsearch修改集群名字后索引数据失败
-
elasticsearch 使用快照进行备份