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 详解相关推荐

  1. ElasticSearch搜索引擎详解-持续更新中

    ElasticSearch搜索引擎详解 1. ElasticSearch概述 1.1 elasticsearch是什么 1.2 全文搜索引擎 1.3 elasticsearch and solr 1. ...

  2. ElasticSearch(ES)详解(二)

    ElasticSearch(ES)详解(二) 前言 一.ES集群讲解 (一)基本词条介绍 (二)集群架构原理 1.写入原理 2.检索原理 二.集群部署及管理 (一)部署集群 (二)管理集群 前言 上一 ...

  3. elasticsearch配置文件详解

    配置文件详解 配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配置,主配置文件是elasticsearch.yml,日志配置文件是logg ...

  4. Elasticsearch Pipeline 详解

    文章目录 Ingest Node 简介 Ingest Node 简介 Pipeline.Processors Pipeline 定义 简介 Simulate Pipeline API 访问 Pipel ...

  5. ElasticSearch配置详解

    2019独角兽企业重金招聘Python工程师标准>>> 配置文件详解 配置文件位于es根目录的config目录下面,有elasticsearch.yml和logging.yml两个配 ...

  6. ElasticSearch Client详解

    从本文开始,将与大家进入到Elasticsearch的精妙世界中来,基于当前最新的6.4.x版本. 本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClie ...

  7. ElasticSearch倒排索引详解

    概述 Lucene 作为 Apache 开源的一款搜索工具,一直以来是实现搜索功能的神兵利器,现今火热的 Solr 和 Elasticsearch 均基于该工具包进行开发,而 Lucene 之所以能在 ...

  8. elasticsearch入门详解以及mapping介绍

    本文目录 elasticsearch简介 elasticsearch的Type区别 核心数据类型: 复杂数据类型 倒排索引 index内部模型 自动识别规则 匹配查询 elasticsearch 中t ...

  9. Elasticsearch 5.4 Mapping详解

    为什么80%的码农都做不了架构师?>>>    前言 一Field datatype字段数据类型 1string类型 2 text类型 3 keyword类型 4 数字类型 5 Ob ...

最新文章

  1. Python教程:切片、迭代、列表生成式
  2. 开源学习管理系统(LMS)的比较
  3. 在微信浏览器中 location.reload() 不刷新解决方案(直接调用方法)
  4. 我是怎样刚拿饿了么P7 offer,然后途虎一轮游的
  5. 利用LCD1602显示超声波测距
  6. World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景(转)...
  7. android.app.instrumentation解析
  8. 数字集成电路物理设计_数字世界的物理词汇
  9. Linux(Centos7) 报 “RTNETLINK answers: File exists” 问题的解决
  10. vue里面使用图片的懒加载
  11. Jupyter Lab 十大高生产力插件
  12. 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架
  13. JUC-II CPU的微程序设计 计算机组成原理课程设计 微指令编码
  14. Typescript类,泛型,各种类型工具
  15. 免费!在线WORD转PDF的方法分享
  16. 图文笔记,带你走进《未来简史》(26-30)
  17. 全国青少年软件编程等级考试scratch二级考试大纲+考点
  18. 木马程序,原来还有发展,现在居然还有好多代?
  19. 我的保研之旅——北京航空航天大学、北理工、南大
  20. eth批量归集代币合约部署

热门文章

  1. LinkedBlockingQueue和ArrayBlockingQueue
  2. VS2019正确创建C++步骤以及扩展插件美化你的VS2019的IDE开发环境
  3. 操作篇 ospf认识和应用
  4. MemoryMonitor内存监视器
  5. php查询socket数据包头,php 查询数组值php中关于socket的系列函数总结
  6. srve0255e尚未定义要怎么办_皮肤干燥怎么办?四大方法帮你冬季补?
  7. java中序列化怎么创建_【java】面试官问我,如何实现一个自定义序列化
  8. html怎么设置单选框样式,CSS - 如何设置所选单选按钮标签的样式?
  9. vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别
  10. java窗口how2j_How2J Java 基础