版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
显式Mapping设置与常见参数介绍
自定义Mapping的一些建议
- 为了减少输入的工作量,减少出错概率,可以依照一下步骤
- 创建一个临时的index,写入一些样本数据
- 通过访问Mapping API获得该临时文件的o动态Mapping定义
- 修改后用,使用该配置创建你的索引
- 删除临时索引
控制当前字段是否被索引
- index - 控制当前字段是否被索引,默认为true,如果设置成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
- 记录内容越多,占用存储空间越大
null_value
- 需要对null值实现搜索,只要keyword 类型支持设定null_value
PUT users
{
"mappings" : {
"properties":{
"mobile":{
"type":"keyword",
"null_value":"NULL"
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
copy_to 设置
- _all 在7中被copy_to 所替代
- 满足一些特定的搜索需求
- copy_to 将字段的数值拷贝到目标字段,实现类似_all的作用
- copy_to 的目标字段不出现在_source中
PUT users
{
"mappings" : {
"properties":{
"firstName":{
"type":"keyword",
"copy_to":"fullName"
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
数组类型
- Elasticsearch中不提供专门的数组类型,但是任何字段,都可以包含多个相同类型的数值
多字段类型
- 多字段特性
- 使用不同的analyzer
- 不同语言
- pinyin字段的搜索
- 支持为搜索和索引指定不同的analyzer
- 使用不同的analyzer
PUT products
{
"mappings" : {
"properties":{
"comment":{
"type":"keyword",
"fields":{
"english_comment":{
"type":"text",
"analyzer":"english",
"search_analyzer":"english"
}
}
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- Index Template:帮助你设定Mapping和Settings,并按照一定的规则,自动匹配到新创建的索引之上
- 和Dynamic Template