Elasticsearch Mapping
2018-11-29 09:46:40来源:博客园 阅读 ()
1. Mapping(映射)
Mapping 是定义文档及其包含的字段是如何存储和索引的过程
例如,我们用映射来定义:
- 哪些字符串字段应该被当做全文字段
- 哪些字段包含数字、日期或地理位置
- 是否应该将文档中所有字段的值索引到catch-all字段中
1.1. Mapping Type(映射类型)
每个索引都有一个映射类型,以决定文档将被如何索引
映射类型包含两部分:
Meta-fields
Meta-fields通常用于自定义文档的元数据。例如,meta-fields包括文档的 _index, _type, _id, _source等字段
Fields 或 properties
一个映射类型包含一个字段列表或属性列表
1.2. Field datatypes(字段数据类型)
每个字段有一个数据类型,它可以是下列之一:
- 简单类型,比如 text, keyword, date, long, double, boolean , ip
- 支持JSON层级结构的类型,比如 object 或者 nested
- 特别的类型,比如 geo_point, geo_shape, completion
1.3. Example mapping
curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d' { "mappings": { "doc": { "properties": { "title": { "type": "text" }, "name": { "type": "text" }, "age": { "type": "integer" }, "created": { "type": "date", "format": "strict_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比作关系型数据库的话,那么,映射就是建表,映射类型就是存储引擎,字段类型就是字段类型
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring Boot 教程 - Elasticsearch 2020-06-09
- Invalid [xxx] in servlet mapping 、 <url-pattern& 2020-06-07
- Elasticsearch如何有惊无险地入门,我是用心的 2020-05-28
- ElasticSearch7.4.2安装、使用以及与SpringBoot的整合 2020-05-27
- springboot与elasticsearch整合 2020-05-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash