一、概念
映射 (mapping)就是指定索引(index)里面的每个文档中的字段的类型,设置字段的存储和查询的分析策略。
es对不同的字段类型,有不同的存储和检索策略,
比如对于text类型的字段,会经过各类分词处理(大小写转换/同义词转换),才会建立对应的倒排索引。
但是对于数值\时间等默认的keyword字段,会直接将整个值建立到倒排索引中。
如果不在创建索引的时候手动设置的话,es也会根据字段值进行自动映射。
二、映射的组成
1、Meta-fields:
用于自定义文档的元数据,每个文档都有对应的元数据,这些元数据对应的字段都是以下划线_开头的内置字段。
标识元数据字段:
_index(索引):文档属于哪个索引
_type(类型): 文档映射的类型
_id(文档id):记录文档的id
_uid:由_type和_id组成的组合字段
文档来源 元数据字段:
_source:文档的原始Json
_size: _source的长度(字节数)
索引 元数据字段:
_all 索引其它字段的值,默认是禁用的
_fieId_names 所有非空字段
路由 元数据字段:
_routing 自定义的路由值,用于分片的
其它元数据字段
_meta - 应用特定的元字段: 每个type都可以拥有自定义的元数据 —— ES并不会使用,
但可以用来存储应用程序的特定信息.
2、Fields 或 properties
一个映射(mapping)里面的字段列表或者属性列表
3、mapping实例:
{
"website" : {
"mappings" : {
"user" : {
"_all" : {
&#