Elasticsearch Reference [6.2] » Mapping

参考官方英文文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

部分内容参考:https://www.cnblogs.com/ljhdo/p/4981928.html

Mapping 是定义文档及其包含的字段如何存储和编制索引的过程,每个索引都有一个映射类型,用于确定文档将如何编制索引。

一、Meta-fields

包括文档的_index,_type,_id和_source字段

二、es字段数据类型

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html

  1. 字符串类型

    textkeyword
  2. 数值类型

    long, integer, short, byte, double, float, half_float, scaled_float
  3. 日期类型

    date
  4. 布尔值类型

    boolean
  5. 二进制类型

    binary
  6. 范围类型

    integer_range, float_range, long_range, double_range, date_range
  7. Array数据类型(Array不需要定义特殊类型)
[ "one", "two" ]
[ 1, 2 ]
[{ "name": "Mary", "age": 12 },{ "name": "John", "age": 10}]
  1. Object数据类型 (json嵌套)
{
"region": "US",
"manager": {
"age": 30,
"name": {
"first": "John",
"last": "Smith"
}
}
}
  1. 地理数据类型

    Geo-pointGeo-Shape(比较复杂,参考官网文档,一般用Geo-point就可以了)
  2. 特殊数据类型

    ip(IPv4 and IPv6 addresses)

    completion(自动完成/搜索)

    token_count (数值类型,分析字符串,索引的数量)

    murmur3 (索引时计算字段值的散列并将它们存储在索引中的功能。 在高基数和大字符串字段上运行基数聚合时有很大帮助)

    join (同一索引的文档中创建父/子关系)

以下是常用的参数类型定义&赋值demo

类型 参数定义 赋值
text "name":{"type":"text"} "name": "zhangsan"
keyword "tags":{"type":"keyword"} "tags": "food"
date "date":{"type": "date"} "date":"2015-01-01T12:10:30"
long "age":{"type":"long"} "age" :28
double "score":{"type":"double"} "score":98.8
boolean "isgirl": { "type": "boolean" } "isgirl" :true
ip "ip_addr":{"type":"ip"} "ip_addr": "192.168.1.1"
geo_point "location": {"type":"geo_point"} "location":{"lat":40.12,"lon":-71.34}

三、Mapping parameters

https://www.elastic.co/guide/en/elasticsearch/reference/6.2/mapping-params.html 带*是常用的字段属性

Parameters 默认值 备注
*analyzer "standard" standard/simple/stop/keyword/whitespace/(lang:english)字符串分析器,keyword意思是不分词内容整体作为一个token
normalizer - 统一设置标准化分词,mapping里的字段可以使用同样的分词器
boost 1.0 字段在文档中的权重
coerce true 字符串强制转换为数字
copy_to - 例如将firstname和lastname复制到fullname
doc_values true 创建索引的时候存储在磁盘的数据结构,不需要排序和聚合改为false节省磁盘空间
*dynamic true ture/false/strict允许动态添加字段,不建议设为true
enabled true 只存储不索引或聚合,例如session会话存储
fielddata 字符串专用,查询时将term-document关系存储在内存中
eager_global_ordinals 自增唯一编号
*format "format": "yyyy-MM-dd hh:mm:ss"
ignore_above 0 int,超过这个长度的字符串不会被索引和存储,0代表不限制
ignore_malformed 设置为true允许错误的数据类型索引到字段中引起的异常
index_options positions/docs docs(只索引文档编号)/freqs(索引文档编号和词频)/positions(索引文档编号/词频/词位置)/offsets(索引文档编号/词频/词偏移量/词位置) ,被索引的字段默认用positions,其他的docs
*index "analyzed" analyzed/not_analyzed/no 字段值是否被索引,设置no的字段不可查询,参考中文文档
fields 相同的字段设置不同的方式
norms true score评分相关,会占用一定的磁盘空间,不需要可以关闭
null_value null 空值不能被索引和搜索,用字符串"NULL"代替空值 "null_value": "NULL"
position_increment_gap 100 当索引多个值的文本时支持临近或短语查询,或值之间的间隙
properties - 在创建索引时定义字段的属性
*search_analyzer 索引的分词器 一般索引和搜索用同样的分词器,如需不一样可更改
similarity "BM25" BM25/classic/boolean,主要用于文本字段的相似度算法
*store false 默认情况字段被索引可以搜索,但没有存储原始值且不能用原始值查询,_resource包含了所有的值,当大段文本需要搜索时可以修改为true
term_vector "no" no/yes/with_positions/with_offsets/with_positions_offsets 分词向量,分析过程产生的术语

elasticsearch入门使用(二) Mapping + field type字段类型的更多相关文章

  1. Elasticsearch入门教程(二):Elasticsearch核心概念

    原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...

  2. ElasticSearch(五):Mapping和常见字段类型

    ElasticSearch(五):Mapping和常见字段类型 学习课程链接<Elasticsearch核心技术与实战> 什么是Mapping Mapping类似数据库中的schema的定 ...

  3. Dynamic Mapping和常见字段类型

    原文:Dynamic Mapping和常见字段类型 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn. ...

  4. ElasticSearch Mapping中的字段类型

    1)string: 默认会被分词 2)数字类型主要如下几种: long:64位存储  integer:32位存储  short:16位存储  byte:8位存储  double:64位双精度存储  f ...

  5. Elasticsearch入门(二)

    基础概念 Elasticsearch有几个核心概念,从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档 ...

  6. ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

    这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  7. 初学者都能学会的ElasticSearch入门实战

    大家好,我是咔咔 不期速成,日拱一卒 项目中准备使用ElasticSearch,之前只是对ElasticSearch有过简单的了解没有系统的学习,本系列文章将从基础的学习再到深入的使用. 咔咔之前写了 ...

  8. ArcGIS Field Type /esriFieldTypeDate(转)

    ArcGIS Field Type   The following table outlines the equivalent field data types in ArcCatalog, ArcO ...

  9. mysql创建表时字段类型选择与优化

    一.选择原则 1.应该尽量使用可以正确存储数据的最小字段类型 2.选用简单的数据类型,例如:一个是尽量用mysql内置的字段类型来存储日期和时间:另一个存储IP地址尽量用整型:能用整型的尽量不用字符串 ...

随机推荐

  1. CPP-基础:字节对齐

    一.   什么是字节对齐,为什么要对齐?      现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的 ...

  2. hibernate3缓存(hibernate)

    一级缓存:当应用程序调用Session 的save() .update() .savaeOrUpdate() .get() 或load() ,以及调用查询接口的list() .iterate() 或f ...

  3. tp5对接支付宝支付简单集成

    对于每个刚开始工作的新手来说,无论支付宝支付还是微信支付都是跑不掉的一个小门槛. 在加上本人比较技术比较渣(比较懒导致的),不太喜欢引用那么大的SDK,于是就简单集成了一下支付宝的支付. 但也只是只有 ...

  4. 高德定位腾讯定位在APP上无法开启定位权限的解决方案

    [备注]公司项目中遇到的问题,如果你在团队工作其中定有不少配合方面的问题,其中的思路是可以借鉴的,因为这也许正是你们现在遇到的问题,总结的不好的地方还请多多指教 因为项目需求的确定,定位成了必不可少的 ...

  5. http常用状态吗以及分别代表什么意思?

    http常用状态码: 状态码 定义 说明 1xx 信息 街道请求继续处理 2xx 成功 成功的收到.理解.接受 3xx 重定向 浏览器需要执行某些特殊处理一完成请求 4xx 客户端错误 请求的语法有问 ...

  6. 【线段树 细节题】bzoj1067: [SCOI2007]降雨量

    主要还是细节分析:线段树作为工具 Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小 ...

  7. 【动态规划】luoguP1941 飞扬的小鸟

    细节总是打挂选手:) 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管 ...

  8. (36)zabbix Maintenance维护周期

    概述 我们可以给zabbix某些组或者某些Hosts设置维护时间 zabbix提供两种维护类型:依旧收集数据.暂停收集数据 在 服务器维护期间不会生成报警(前提:触发器设置了'Maintenance ...

  9. input标签内容改变触发的事件

    原生方法 onchange事件 <input type="text" onchange="onc(this)"> function onc(data ...

  10. [php] 表单注意事项

    什么是 htmlspecialchars()方法? htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是: & (和号) 成为 & &q ...