首页 > 其他分享 >Elasticsearch-Mapping篇

Elasticsearch-Mapping篇

时间:2024-01-22 18:55:07浏览次数:28  
标签:映射 dynamic Mapping Elasticsearch date 文档 动态

官方文档

官网:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

映射是定义文档及其包含的字段如何存储和索引的过程。

每个文档都是字段的集合,每个字段都有自己的 数据类型。映射数据时,您创建一个映射定义,其中包含与文档相关的字段列表。映射定义还包括元数据字段(如 _source字段),它自定义文档关联元数据的处理方式。

使用动态映射显式映射来定义数据。根据您在数据旅程中所处的阶段,每种方法都会提供不同的好处。例如,显式映射您不想使用默认值的字段,或者更好地控制创建哪些字段。然后,您可以允许 Elasticsearch 动态添加其他字段。

动态映射

动态映射允许您在刚开始时尝试和探索数据。Elasticsearch 只需对文档建立索引即可自动添加新字段。您可以将字段添加到顶级映射以及内部object 和nested字段。
使用动态模板定义自定义映射,这些映射将根据匹配条件应用于动态添加的字段。

动态字段映射

Elasticsearch 数据类型:

JSON 数据类型 "dynamic":"true" "dynamic":"runtime"
null 未添加字段 未添加字段
true或者false boolean boolean
double float double
long long long
object object 未添加字段
array 取决于null数组中的第一个非值 取决于null数组中的第一个非值
string通过日期检测 date date
string通过数字检测 float或者long double或者long
string未通过date检测或numeric检测 text有一个.keyword子字段 keyword

可以在文档和级别禁用动态映射 object。将参数设置dynamic为 false忽略新字段,或设置为strict在 Elasticsearch 遇到未知字段时拒绝文档。

dynamic: false:当您在索引文档时将该参数设置为false时,Elasticsearch会忽略新字段的动态映射。这意味着新字段不会被自动检测和创建映射,只有已经存在的字段才会被索引。

PUT data/_mapping
{
  "mappings": {
    "dynamic": false,  // 禁用动态映射
    "properties": {
      "MyDate": { "type": "date" },// 那么字段MyDate将会是date类型
      "MyNumber": { "type": "string" }
    }
  }
}

日期检测

如果date_detection启用(默认),则检查新字符串字段以查看其内容是否与 中指定的任何日期模式匹配 dynamic_date_formats。如果找到匹配项,date则会添加具有相应格式的新字段。

默认值为 dynamic_date_formats

[ "strict_date_optional_time", "yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]

例如现在随意添加一个字段,改字段为差不多的时间格式,当es不能匹配时,会自动转为其他类型格式,而如果格式能够匹配到内置的日期检测,将会转换为日期格式:

// 测试1:普通格式
POST data/_doc/3
{
  "MyDate":"2023-10-22 22:20:30"
}
GET data/_mapping

image

// 测试2:符合时间格式的字段
POST data/_doc/3
{
  "create_date":"2022/02/22" //  yyyy/MM/dd
}
GET data/_mapping

image

当然在ES中也可以更换日期规则
参考官网
dynamic_date_formats 字段自定义
案例:

PUT my-index-000001 
{ "mappings" : { "dynamic_date_formats" : [ "MM/dd/yyyy" ] } }

动态模板

动态模板允许您更好地控制 Elasticsearch 如何映射您的数据,超越默认的动态字段映射规则。true您可以通过将动态参数设置为或 来启用动态映射runtime。然后,您可以使用动态模板来定义自定义映射,这些映射可以根据匹配条件应用于动态添加的字段:

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html

标签:映射,dynamic,Mapping,Elasticsearch,date,文档,动态
From: https://www.cnblogs.com/zgf123/p/17980762

相关文章

  • elasticsearch学习笔记1 - 安装
    本次编写es笔记是为了记录学习到的es知识点,给大家一个快速理解和方便查找的地方。一、了解一下es是什么?为什么要使用es?   因为系统一步一步运行,数据越来越多,每天产生的订单差不动2,3w的数据量,MYSQL数据的查询越来越吃力,然后领导要求能不能先办法解决一下。 然后呢,在网......
  • Mac/Centos安装elasticsearch7.14.0
    一、安装包安装1.下载访问ElasticSearch官网进行下载2.解压3.配置进入ElasticSearch安装目录的config目录在elasticsearch.yml文件中添加如下信息。action.auto_create_index:.security,.monitoring*,.watches,.triggered_watches,.watcher-history*xpack.secu......
  • 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kiba
    前言ELK是指Elasticsearch、Logstash和Kibana这三个开源软件的组合。Elasticsearch是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询。Logstash是一个数据收集、转换和传输工具,用于收集过滤和转换数据,然后将其发送到Elasticsearch或其他目标存储中。Kiba......
  • ElasticSearch之-映射管理
    es中的类型---->对应mysql中的表,也叫映射管理在Elasticsearch6.0.0或更高版本中创建的索引只包含一个mappingtype。在5.x中使用multiplemappingtypes创建的索引将继续像以前一样在Elasticsearch6.x中运行(只能读,不能存)。Mappingtypes将在Elasticsearch7.0.0中完全删除(读......
  • elasticsearch学习笔记2 - logstash jdbc 同步MYSQL到ES
    logstash是一个管道工具input输入output输出filter过滤条件咋们初级先了解到这些再说比较优秀的教程文档作为基础知识需要了解:https://blog.csdn.net/qq_19283249/article/details/130839158?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170564710516800215......
  • 使用 Docker 安装 Elasticsearch (本地环境 M1 Mac)
    Elasticsearch+kibana下载安装dockerpullelasticsearch:7.16.2dockerrun--namees-d-eES_JAVA_OPTS=“-Xms512m-Xmx512m”-e“discovery.type=single-node”-p9200:9200-p9300:9300elasticsearch:7.16.2dockerpullkibana:7.16.2dockerrun--namekibana-eELAST......
  • 9.springMvc中函数的返回值是什么 10.springmvc中@RequestMapping注解都有那些属性
    springMvc的返回值可以有很多类型,如String,modleAndView等,但事一般使用String比较友好。 在SpringMVC中,`@RequestMapping`注解用于将请求映射到控制器的处理方法。它可以应用在类级别和方法级别上,用于处理不同的URL请求。以下是`@RequestMapping`注解的一些常见用......
  • (九):ElasticSearch聚合查询(Aggregation aggs)
    聚合查询文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.4/search-aggregations.html。聚合查询与Mysql中的groupby类似,可以实现对数据统计、分析。如热点商品、销量等信息。ElasticSearch实现这些统计功能的比数据库的sql要方便的多,而且查询速......
  • (八):ElasticSearch结构化查询 Query DSL
    ElasticSearch提供了一个可以执行的JSON风格的DSL(domain-specificlanguage领域特定语言),被称为QueryDSL。1、准备工作1.1、测试数据下载测试数据下载:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip。测试数据如下:1.2、测试数据导入......
  • (六):映射配置(_mapping)
    映射配置与关系数据库中表的DDL类似,在ES中映射时定义文档的过程,定义了文档包含哪些字段,并对文档字段是否保存、是否索引、是否分词等进行设置。1、查看映射字段GET/索引名/_mapping详情如下:2、创建映射字段创建映射字段语法:PUT/索引库名/_mapping/类型名......