es的mapping信息会存储成文件吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es的mapping信息会存储成文件吗相关的知识,希望对你有一定的参考价值。

是的,ES的mapping信息会存储为文件。ES的mapping文件是一个JSON文件,用于定义索引的字段类型,以及每个字段的属性,比如是否可以被搜索、是否可以被排序等。Mapping文件可以被用来指定字段的类型,比如字符串、整数、日期等,以及每个字段的属性,比如是否可以被搜索、是否可以被排序等。Mapping文件也可以被用来指定字段的分词器,以及每个字段的分词器。Mapping文件可以被用来指定字段的格式,比如字符串的格式,整数的格式,日期的格式等。Mapping文件也可以被用来指定字段的分析器,以及每个字段的分析器。Mapping文件可以被用来指定字段的索引类型,比如全文索引、字段索引等。总之,ES的mapping信息会存储为文件,用于定义索引的字段类型,以及每个字段的属性,比如是否可以被搜索、是否可以被排序等。 参考技术A 会。
DBMS数据库有自己的表结构,同样,es中的doc也有自己的结构,称之为mapping,在插入数据是,如果不创建mapping,es会自动根据数据类型创建动态的mapping。由于es底层使用了lucene的原因,不支持对mapping的修改,可使用索引重建的方式
elasticsearch通用mapping模板


"mappings":
"properties":
"文本字符串":
"type":"keyword"
,
"日期时间":
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
,
"结构嵌套":
"properties":
"对象类型":
"type":"object"
,
"文本字符串分词":
"type":"string",
"analyzer":"ik_max_word",
"index_options":"offsets"






加粗 部分为经常用到的mapping配置项

enabled

作用:仅存储、不做搜索和聚合分析
值:false|true
index

作用:是否构建倒排索引(即是否分词,设置false,字段将不会被索引)
值:false|true
index_option

作用:存储倒排索引的哪些信息
值:docs:索引文档号|freqs:文档号+词频|positions:文档号+词频+位置,通常用来距离查询|offsets:文档号+词频+位置+偏移量,通常被使用在高亮字段
分词字段默认是positions,其他默认时docs
参考技术B Es的mapping信息会被存储成文件,但是文件的格式是JSON格式,文件的名字是index.mapping.json。这个文件用于存储索引的mapping信息,比如字段的类型、是否可以存储、是否可以搜索等。在每次更新mapping的时候,都会更新index.mapping.json文件。 参考技术C ES的mapping信息会被存储在一个索引中,不会被存储成文件。 参考技术D 1、Mapping字段映射概述
2、Mapping字段常用类型
3、映射中对时间类型详解
1)采取自动映射器来映射
2)手工映射提前指定日期类型
4、ES的keyword的属性ignore_above
5、Mapping映射的查看和创建
1)查看mapping信息:GET 索引名/_mapping
2)创建映射:PUT /索引名
3) 查看所有索引映射关系
4)修改索引映射关系
5)一次性创建索引和映射
6、数据迁移-reindex
7、ik_max_word、ik_smart分词器
1、Mapping字段映射概述
映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等
映射可以分为动态映射和静态映射:

动态映射(dynamic mapping):在关系数据库中,需要事先创建数据库,然后在该数据库实例下创建数据表,然后才能在该数据表中插入数据。而ElasticSearch中不需要事先定义映射(Mapping),文档写入ElasticSearch时,会根据文档字段自动识别类型。这种机制称之为动态映射
静态映射 :在ElasticSearch中也可以事先定义好映射,包含文档的各个字段及其类型等,这种方式称之为静态映射
2、Mapping字段常用类型
1)字符串(text、keyword)

text:可分词,不可参与聚合
keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合
2)整数

3)浮点类型

4)date类型

日期格式的字符串,比如"2018-01-13"或"2018-01-13 12:10:30"
long类型的毫秒数(从1970年开始)
integer的秒数
5) boolean类型

逻辑类型(布尔类型)可以接受true/false

6) binary类型

二进制字段是指base64来表示索引中储存的二进制数据,可用来储存二进制形式的数据,例如图像。默认情况下,该类型的字段只储存不索引。二进制只支持index_name属性

7)array类型

8)object类型

JSON天生具有层级关系,文档会包含嵌套的对象

3、映射中对时间类

以上是关于es的mapping信息会存储成文件吗的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch 基础 - Mapping

如何判断es mapping已经存在

es存储目录分析

我们可以在 servlet-filter 的 url-mapping 中没有条件吗

es6中的Set和Map

ES6 Map