共计 1388 个字符,预计需要花费 4 分钟才能阅读完成。
Mapping
mapping 相似数据库中的表构造定义,作用如下:
- 定义 index 下字段名
- 定义字段类型,例如数值型,字符串型等
- 定义倒排索引的配置,例如是否为索引,记录 position 等
自定义 mapping
mapping 字段类型一旦设计后,禁止间接批改,因为其生成的倒排索引生成后不容许批改,然而能够建设新的索引,做 reindex。然而容许做新增字段,通过 dynamic 属性设置字段字段规定
- true 默认 容许新增字段
- false 不容许主动新增字段,然而文档可失常写入,但无奈对字段进行查问等操作
- strict 文档不可写入,否则报错
copy_to
将该字段的值复制到指标字段,实现相似_all 的作用
不会呈现在_source 中,只用来搜寻
index
设置 index 为 true 时,记录这个字段为索引,false 不记录
index_options 用于管制倒排索引的记录内容,四种配置
- docs 只记录 docid
- freqs 记录 docid 和 term frequencies
- positions 记录 doc id、term frequencies、term position
- offsets 记录 doc id、term frequencies、term position、character offsets
- text 类型默认配置为 positions 其余默认 docs
- 记录内容越多 占用空间越大
数据类型
外围数据类型
- 字符串
- 数值型
- 日期型
- 布尔
- 二进制
- 范畴
简单数据类型
- 数组
- 对象
- 嵌套类型
- 地理位置
专用类型
- ip
- 主动补全 completion
- 记录分词数 token_count
- 记录字符串 hash
- percolator
- join
多字段个性
容许对同一个字段采纳不同的配置,例如分词,常见例子如对人名实现拼音搜寻,只须要再任命中新增子一个子字段 pinyin 即可
dynamic-mapping
没有指定字段类型时,字段会依据 json 的类型自动识别。
dynamic date
es 可自动识别日期
- 默认为[“strict_date_optional_time”,”yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z”]
- strict_date_option_time 是 ISO datatime 格局,残缺格局相似如下
YYYY-MM-DDThh:mm:ssTZD(eg 1997-07-16T19:20:30+01:00) - dynamic_date_formats 能够自定义日期类型
- date_detaction 能够敞开日期自动识别的机制
字符串是数字时,默认不会自动识别为整形,numeric_detection 能够开启字符串中数字的自动识别
dynamic template
容许 es 自动识别的数据类型,字段名等动静设定字段类型,能够实现如下成果
- 所有字符串类型都设定为 keyword 类型 默认不分词
- 以 message 结尾的字段都设定为 text 类型 分词
- 所有以 long 结尾的字段都设定为 long 类型
- 所有主动匹配为 double 类型的都设定为 float 类型 节俭空间
自定义 mapping 的操作步骤如下
- 写入一条文档到 es 长期索引中,获取 es 主动生成的 mapping
- 批改步骤 1 失去的 mapping,自定义配置
- 应用步骤 2 的 mapping 创立理论所需索引
索引模板
用于再新增索引时主动利用事后设定的配置,简化索引创立的操作步骤
- 能够设定索引的配置和 mapping
- 能够有多个模板,依据 order 设置 order 值大的笼罩小的
正文完