带你读《Elastic Stack 实战手册》之25:——3.4.2.10.Dynamic Mapping(4)

简介: 带你读《Elastic Stack 实战手册》之25:——3.4.2.10.Dynamic Mapping(4)


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.10.Dynamic Mapping(3) https://developer.aliyun.com/article/1230517


同时还能配置大量国际标准的时间格式比如:epoch_millis、basic_date、basic_date_time、

strict_date_optional_time_nanos 等,所有可选项可以参照官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/mapping-date-format.html


# 创建测试索引
PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic": true,
    "dynamic_date_formats": ["MM/dd/yyyy"]  # 识别MM/dd/yyyy格式的时间
    "properties": {
      "field1":{
        "type": "keyword"
      }
    }
  }
}
# 插入数据
PUT test-dynamic-mapping/_doc/1
{
  "date":"09/25/2015",
  "date1":"2015/09/25"
}
# 查看mapping变化
{
  "test-dynamic-mapping" : {
    "mappings" : {
      "dynamic" : "true",
      "dynamic_date_formats" : [
        "MM/dd/yyyy"
      ],
      "properties" : {
        "date" : {          # 符合MM/dd/yyyy格式的字符串识别为了date类型
          "type" : "date",
          "format" : "MM/dd/yyyy"
        },
        "date1" : {        # 符合默认yyyy/MM/dd 格式的字符串识未正确识别
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "field1" : {
          "type" : "keyword"
        }
      }
    }
  }
}

动态模板(Dynamic templates)

 

Elasticsearch 的动态字段映射(Dynamic field mappings)虽然使用简单,但往往不满足现实的业务场景,比如对于整型字段,往往用不着 long 类型,使用 integer 类型就足够了;对于字符串类型的字段,我们希望细化分词方式,而不是使用默认分词,以及对于不同字段采用不同的分词方式等。这时可以使用动态模板(Dynamic templates)功能来实现上述需求。

 

动态模板允许你在创建 mapping 时,设置自定义规则。当新字段满足该规则时,则按照预先的配置来创建字段。

 

Elasticsearch 允许用户通过3个角度来定义规则:新字段的数据类型,属性名和路径。创建 mapping 时可以通过dynamic_templates字段配置多个动态模板。

模板的整体结构如下:

{
  "mappings":{
    "dynamic_templates": [
      {
        "templateName":{   #1
          ……匹配规则……        # 2
          "mapping": { ... } #3      
        }
      }
     ]
  }
}

1、#1 处定义了动态模板的名称,每个动态模板都需要配置名字,本例中配置的模板名称为

templateName。

2、#2 处可以使用match_mapping_type、match、 unmatch、 match_pattern、path_match、path_unmatch来配置该模板的匹配规则,规则可以是多个,规则之间是与的关系。

3、#3 处配置的是符合该规则的字段使用的 mapping 配置,此处与正常创建字段相同,主要需要配置type,analyzer等。



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.10.Dynamic Mapping(5) https://developer.aliyun.com/article/1230514

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
移动开发 算法 JavaScript
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
4204 1
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
|
移动开发 Java 测试技术
iOS的App模块化编程的框架实现方案——BeeHive
BeeHive是用于iOS的App模块化编程的框架实现方案,吸收了Spring框架Service的理念来实现模块间的API耦合。
iOS的App模块化编程的框架实现方案——BeeHive
|
机器学习/深度学习 自然语言处理 算法
|
Kubernetes Linux Docker
Docker容器生产实践1——永远设置容器内存限制
背景 在默认情况下,docker容器并不会对容器内部进程使用的内存大小进行任何限制。对于PaaS系统而言,或者对于直接使用docker的用户而言,这非常危险。
4225 0
|
2月前
|
存储
Tushare接口文档:交易日历(trade_cal)
本文旨在对Tushare的交易日历trade_cal数据接口进行介绍,提供更多参考示例和使用说明。交易日历可以用来作为获取其他数据的关键(迭代)参数,也可以进行其他的应用。本文还基于交易日介绍了如何获取每周及每月最后一个交易日。
628 1
Tushare接口文档:交易日历(trade_cal)
|
1月前
|
人工智能 弹性计算 关系型数据库
2026阿里云优惠活动整理:38元与99元服务器、企业迁云补贴、AI大模型、云产品组合购活动汇总
2026年,阿里云针对个人开发者、初创企业以及AI创新团队推出了一系列极具竞争力的优惠活动。从“38元”的入门级秒杀到“5亿”的企业迁云补贴,再到前沿的AI大模型折扣,阿里云正在通过全方位的降本措施助力用户上云。本文为您详细梳理当前最值得关注的四大类优惠活动。
|
2月前
|
人工智能 分布式计算 Serverless
EMR Serverless Daft 如何简化多模态数据处理:视频抽帧、清洗、标注全流程与具身智能实践
阿里云 EMR Serverless Spark 引入 Ray 分布式计算框架与 Daft 高性能数据引擎,为用户提供了一套开箱即用、免运维且极致高效的多模态数据处理基础设施。
|
3月前
|
弹性计算 应用服务中间件 Apache
阿里云301重定向全指南:从配置到SEO优化的实战手册
301重定向是HTTP永久跳转技术,用于将旧URL精准迁移至新地址,实现SEO权重近乎100%传递、避免404、统一www/HTTPS等规范。阿里云支持虚拟主机、ECS(Nginx/Apache/IIS)及CDN源站等多种配置方式,是网站改版、域名更换与安全升级的必备实践。
807 0
|
4月前
|
人工智能 IDE JavaScript
通义灵码深度评测-企业内部使用实战
通义灵码深度评测-企业内部使用实战 ,根据企业内部使用实战,建设了微信公众号、视频号、csdn专栏,持续更新了通义灵码企业级实践教程,从入门->精通,从基本功能->高阶功能全面详尽的实战,持续更新中
873 0

热门文章

最新文章