Elasticsearch Mapping 详解
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比作关系型数据库的话,那么,映射就是建表,映射类型就是存储引擎,字段类型就是字段类
Elasticsearch Mapping 详解相关推荐
- ElasticSearch搜索引擎详解-持续更新中
ElasticSearch搜索引擎详解 1. ElasticSearch概述 1.1 elasticsearch是什么 1.2 全文搜索引擎 1.3 elasticsearch and solr 1. ...
- ElasticSearch(ES)详解(二)
ElasticSearch(ES)详解(二) 前言 一.ES集群讲解 (一)基本词条介绍 (二)集群架构原理 1.写入原理 2.检索原理 二.集群部署及管理 (一)部署集群 (二)管理集群 前言 上一 ...
- elasticsearch配置文件详解
配置文件详解 配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配置,主配置文件是elasticsearch.yml,日志配置文件是logg ...
- Elasticsearch Pipeline 详解
文章目录 Ingest Node 简介 Ingest Node 简介 Pipeline.Processors Pipeline 定义 简介 Simulate Pipeline API 访问 Pipel ...
- ElasticSearch配置详解
2019独角兽企业重金招聘Python工程师标准>>> 配置文件详解 配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配 ...
- ElasticSearch Client详解
从本文开始,将与大家进入到Elasticsearch的精妙世界中来,基于当前最新的6.4.x版本. 本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClie ...
- ElasticSearch倒排索引详解
概述 Lucene 作为 Apache 开源的一款搜索工具,一直以来是实现搜索功能的神兵利器,现今火热的 Solr 和 Elasticsearch 均基于该工具包进行开发,而 Lucene 之所以能在 ...
- elasticsearch入门详解以及mapping介绍
本文目录 elasticsearch简介 elasticsearch的Type区别 核心数据类型: 复杂数据类型 倒排索引 index内部模型 自动识别规则 匹配查询 elasticsearch 中t ...
- Elasticsearch 5.4 Mapping详解
为什么80%的码农都做不了架构师?>>> 前言 一Field datatype字段数据类型 1string类型 2 text类型 3 keyword类型 4 数字类型 5 Ob ...
最新文章
- Python教程:切片、迭代、列表生成式
- 开源学习管理系统(LMS)的比较
- 在微信浏览器中 location.reload() 不刷新解决方案(直接调用方法)
- 我是怎样刚拿饿了么P7 offer,然后途虎一轮游的
- 利用LCD1602显示超声波测距
- World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景(转)...
- android.app.instrumentation解析
- 数字集成电路物理设计_数字世界的物理词汇
- Linux(Centos7) 报 “RTNETLINK answers: File exists” 问题的解决
- vue里面使用图片的懒加载
- Jupyter Lab 十大高生产力插件
- 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架
- JUC-II CPU的微程序设计 计算机组成原理课程设计 微指令编码
- Typescript类,泛型,各种类型工具
- 免费!在线WORD转PDF的方法分享
- 图文笔记,带你走进《未来简史》(26-30)
- 全国青少年软件编程等级考试scratch二级考试大纲+考点
- 木马程序,原来还有发展,现在居然还有好多代?
- 我的保研之旅——北京航空航天大学、北理工、南大
- eth批量归集代币合约部署
热门文章
- LinkedBlockingQueue和ArrayBlockingQueue
- VS2019正确创建C++步骤以及扩展插件美化你的VS2019的IDE开发环境
- 操作篇 ospf认识和应用
- MemoryMonitor内存监视器
- php查询socket数据包头,php 查询数组值php中关于socket的系列函数总结
- srve0255e尚未定义要怎么办_皮肤干燥怎么办?四大方法帮你冬季补?
- java中序列化怎么创建_【java】面试官问我,如何实现一个自定义序列化
- html怎么设置单选框样式,CSS - 如何设置所选单选按钮标签的样式?
- vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别
- java窗口how2j_How2J Java 基础