mapping 详解1(mapping type)
映射(mapping)
映射是定义一个文档以及其所包含的字段如何被存储和索引的方法。
例如,用映射来定义以下内容:
- 哪些 string 类型的 field 应当被当成当成 full-text 字段
- 哪些字段应该是数值类型、日期类型或者是地理位置信息
- 日期类型字段的格式是怎么样的
- 是否文档的所有字段都需要被索引到 _all 字段
- 动态增加的 field 可以由用户自定义的模板来控制其行为
映射类型(mapping types)
每个索引都有一个或多个映射类型(mapping type)来对索引内的文档进行逻辑分组(mapping type 就是平常所说的 type)。
每一个映射类型都包含以下内容:
1. 元数据字段
元数据字段用来自定义如何处理关联文档的元数据。元数据字段包括: _index, _type, _id, _source.
2. 字段列表或属性
每个映射类型都包含一个字段列表或者是和该类型相关的一些属性。
字段数据类型(field datatypes)
每一个字段,都属于一种数据类型。
1. 基本数据类型
string, long, boolean, ip
2. JSON 分层数据类型
object, nested
3. 特殊类型
geo_point, geo_shape, completion
动态映射(dynamic mapping)
字段及其映射类型不必在使用前事先定义好,这得益于动态映射的应用。
动态映射能够根据文档索引过程来自动生成映射类型和字段名。
动态映射规则可以用来定义新类型和新字段的映射。
显式映射(explicit mappings)
如果你比 ES 通过猜测来确定映射更加了解你的数据,那么定义一个动态映射将会很有用。不过有时候你可能需要指定自己的显式映射。
显式映射可以在创建索引时候定义,或者用 mapping API 来为已有的索引添加映射类型或字段。
映射更新(updating existing mappings)
映射支持更新,如果需要,必须重建索引并设置正确的 mapping ,而不是试图去更新已有的 mapping。
字段之间共享映射类型(fileds are shared across mapping types)
映射类型用来逻辑分组字段,但是每个映射类型之间的字段并非独立存在的。
1. 规则:
字段在以下条件:
- 相同字段名
- 相同索引
- 不同映射类型
的时候其实是映射到内部相同的字段上,所以,必须拥有相同的映射设置。
2. 例外:
有一些例外,参数:
- copy_to
- dynamic
- enabled
- ignore_above
- include_in_all
- properties
可以对满足前述“规则”的字段进行各自不同的设置。
mapping 详解1(mapping type)的更多相关文章
- input表单的type属性详解,不同type不同属性之间区别
目标:详解表单input标签type属性常用的属性值 一.input标签和它的type属性 PS:input 元素可以用来生成一个供用户输入数据的简单文本框. 在默认的情况下, 什么样的数据均可以输入 ...
- mapping 详解4(mapping setting)
mapping type 映射设置一般发生在: 1. 增加新的 index 的时候,添加 mapping type,对 fields 的映射进行设置 PUT twitter { "mappi ...
- mapping 详解2(field datatypes)
基本类型 1. 字符串 字符串类型被分为两种情况:full-text 和 keywords. full-text 表示字段内容会被分析,而 keywords 表示字段值只能作为一个精确值查询. 参数: ...
- mapping 详解5(dynamic mapping)
概述 在使用 ES 的时,我们不需要事先定义好映射设置就可以直接向索引中导入文档.ES 可以自动实现每个字段的类型检测,并进行 mapping 设置,这个过程就叫动态映射(dynamic mappin ...
- mapping 详解3(Meta-Fields)
文档标识相关元数据字段 _index 当执行多索引查询时,可能需要添加特定的一些与文档有关联的索引的子句. _index 字段可以用在 term.terms 查询,聚合(aggregations)操作 ...
- Elasticsearch5.X Mapping详解
0.引言 在关系型数据库如Mysql中,设计库表需要注意的是: 1)需要几个表: 2)每个表有哪些字段: 3)表的主键及外键的设定——便于有效关联. 表的设计遵守范式约束,考虑表的可扩展性,避免开发后 ...
- elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解
一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状 ...
- Scala 深入浅出实战经典 第78讲:Type与Class实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
随机推荐
- 设计模式_Iterator_迭代器模式
形象例子: 我爱上了Mary,不顾一切的向她求婚. Mary:“想要我跟你结婚,得答应我的条件” 我:“什么条件我都答应,你说吧” Mary:“我 ...
- C/C++动态分配与释放内存的区别详细解析
以下是对C与C++中动态分配与释放内存的区别进行了详细的分析介绍,需要的朋友可以过来参考下 1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配 ...
- mfc的一个串口类
这几天一直再看串口相关知识,对于其总结为如下串口类: 头文件声明如下: #pragma once // 声明当串口接收到线程的时候调用的函数指针 // 参数: 1,接收到的数据: 2,数据长度: 3, ...
- Python subprocess Popen
目的:顺序执行进程 在Bash里面类似 a.sh && b.sh && c.sh 先来说下Popen这个函数 class subprocess.Popen(args ...
- java 内部类的使用
http://www.cnblogs.com/wenruo/p/5387995.html 内部类 就是在类中嵌套的另一个类. 非静态内部类 创建内部类的方式就是把类定义在外部类里面. class Ou ...
- Getty – Java NIO 框架设计与实现
前言 Getty是我为了学习 Java NIO 所写的一个 NIO 框架,实现过程中参考了 Netty 的设计,同时使用 Groovy 来实现.虽然只是玩具,但是麻雀虽小,五脏俱全,在实现过程中,不仅 ...
- ListView inside a ScrollView
ScrollView里面放ListView, ListView无法展开的解决方法 http://stackoverflow.com/questions/18367522/android-list-vi ...
- Android中使用sqlite笔记
1.实现SQLiteHelper来在android中使用SQLite.代码如下,来自android官网. public class FeedReaderDbHelper extends SQLiteO ...
- soliworks三维机柜布局(二)创建设备位置
首先声明对三维机柜布局来说,此步骤不是必须的.(创建solidworks装配体文件时,若是创建了位置就可以选择是否为每个位置创建一个装配体,没有创建位置的话只能选择创建整个工程的装配体文件) 在菜单栏 ...
- Oracle- plsql developer如何查询SQL语句执行历史记录
相信很多在plsql developer调试oracle的朋友,经常会遇到在plsql developer执行的某一条SQL语句没有保存,那么我们在plsql developer下如何找到我们执行过的 ...