Elasticsearch Mapping
1.? Mapping(映射) Mapping 是定义文档及其包含的字段是如何存储和索引的过程 例如,我们用映射来定义:
1.1.??Mapping Type(映射类型) 每个索引都有一个映射类型,以决定文档将被如何索引 映射类型包含两部分: Meta-fields Meta-fields通常用于自定义文档的元数据。例如,meta-fields包括文档的 _index, _type, _id, _source等字段 Fields 或 properties 一个映射类型包含一个字段列表或属性列表 1.2.??Field datatypes(字段数据类型) 每个字段有一个数据类型,它可以是下列之一:
1.3.??Example mapping curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d' { mappings": { doc: { properties: { title": { type": text },name": { age": { integer },1)">created: { ": date,1)">formatstrict_date_optional_time||epoch_millis } } } } } ' 创建一个索引名字叫“my_index”,并且添加一个映射类型叫“doc”,包含4个字段 2.??Field datatypes(字段类型) 2.1.? 核心类型 字符串类型 text , keyword 数值类型 long , integer , short , byte , double , float , half_float , scaled_float 日期类型 date 布尔类型 boolean 二进制类型 binary 范围类型 integer_range , float_range , long_range , double_range , date_range 2.2.? 复杂类型 数组类型 数组不需要一个专门的类型 对象类型 object (PS:单个JSON对象) 内嵌类型 nested(PS:JSON对象数组) 2.3.? 地理类型 Geo_point类型 geo_point 用于地理位置经纬度坐标 Geo_shape类型 geo_shape?用于复杂形状 2.4.??专门的数据类型 IP类型 ip (用于IPv4和IPv6地址) Completion类型 completion (用于自动补全提示) Token count 类型 token_count (用于计数字符串中的token) mapper-murmur3 murmur3 (计算值的hashcode,并将其存储到索引中) 过滤器类型 接受一个查询语句 join 类型 为同一索引内的文档定义父/子关系 3.? Meta-fields(元数据字段) 每个文档都有与之关联的元数据 3.1.? 标识? 元数据字段 _index 文档属于哪个索引 _id ? 文档ID _type ? 文档的映射类型 _uid 由 _type和 _id组成的一个组合字段 3.2. 文档来源? 元数据字段? _source 文档的原始JSON _size _source字段的长度(多少字节) 3.3.? 索引? 元数据字段 _all 索引其它字段的值,默认情况下是禁用的 _field_names 所有非空字段 3.4.? 路由? 元数据字段 _routing 一个自定义的路由值,用于分片的 3.5.? 其它? 元数据字段 _meta 其它 4.? 小结 如果把Elasticsearch比作关系型数据库的话,那么,映射就是建表,映射类型就是存储引擎,字段类型就是字段类型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |