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 ...
随机推荐
- VTK三维重建(1)-使用VTK读取DICOM,并动态输出
[效果显示] 将脚部骨骼扫描的CT照片进行的连续读取, 运行结果存为了两个动态gif, 不知道能不能正常显示 [程序实现] int main(int argc, char* argv[]) { // ...
- python 网络编程(三)---TCP 服务器端客户端实现
客户端 客户端主要有4个步骤: 1)创建一个socket以连接服务器. socket = socket.socket(family, type),family参数代表地址家族,可为AF_INET(包括 ...
- cocos2d-x编译到android平台后,增加返回键和菜单键支持
在头文件中增加函数 virtual void keyBackClicked();//android返回键 virtual void keyMenuClicked();//android菜单键 在ini ...
- 6.1 CUDA: pinned memory固定存储
CPU和GPU内存交互 在CUDA编程中,内存拷贝是非常费时的一个动作. 从上图我们可以看出:1. CPU和GPU之间的总线bus是PCIe,是双向传输的. 2. CPU和GPU之间的数据拷贝使用DM ...
- 在win64位,python64位2.7版本中安装pyHook
今天看了一篇博文说的是利用pyhook监听键盘鼠标事件(感兴趣的可以看博客园中相关文章),文章中使用的pyHook模块的官方下载地址是:http://sourceforge.net/projects/ ...
- 析构函数释放内存时出现_BLOCK_TYPE_IS_VALID错误
错误信息截图: 原因: 1.内存泄漏:所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现"Debug Assertion Failed"的 ...
- HW6.4
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- 局域网Internet的共享
局域网接入Internet,之后,在服务器安装共享代理软件,可以使客户机通过代理软件接入Internet. 局域网接入Internet 而目前几乎所有的浏览器.下载软件.信件收发软件都支持代理服务器. ...
- 低级错误之Hbm中类型不一致错误
Myeclipse将数据库中的长整形生成为Bigdecimal类型,实际应该生成为Long.导致保存的时候报错.
- SQL 正则表达式使模式匹配和数据提取变得更容易
SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易 David Banister 本文讨论: 使用正则表达式进行高效的 SQL 查询 SQL Server 2005 对正则表达式 ...