带你读《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_typematchunmatchmatch_pattern、path_matchpath_unmatch来配置该模板的匹配规则,规则可以是多个,规则之间是的关系

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



《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并实现搜索。  
相关文章
|
存储 算法 数据挖掘
C语言中如何快速找出数组最大值下标
C语言中如何快速找出数组最大值下标
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
1269 1
|
移动开发 Java 测试技术
iOS的App模块化编程的框架实现方案——BeeHive
BeeHive是用于iOS的App模块化编程的框架实现方案,吸收了Spring框架Service的理念来实现模块间的API耦合。
iOS的App模块化编程的框架实现方案——BeeHive
|
机器学习/深度学习 自然语言处理 算法
|
7月前
|
SQL 人工智能 供应链
技术向:如何在 AI Agent 框架下实现企业级业务的逻辑自洽与自动化闭环?
随着大语言模型(LLM)从单纯的“对话接口”演进为“行动中枢”,AI Agent(智能体)正成为企业数字化转型的核心架构。本文将深度探讨在企业级复杂业务场景下,如何构建具备**逻辑自洽**能力的 Agent 框架,并通过**全链路感知、决策与执行**实现真正的业务自动化闭环。
518 2
|
API 数据处理 开发者
获取淘宝分类详情:深入解析taobao.cat_get API接口
淘宝开放平台推出的`taobao.cat_get` API接口,帮助开发者和商家获取淘宝、天猫的商品分类详情。该接口支持获取类目列表、属性及父类目信息,通过指定分类ID(cid)实现精准查询,并提供灵活的参数设置和高效的数据处理。使用流程包括注册账号、创建应用、获取App Key/Secret、构造请求、发送并解析响应。示例代码展示了如何用Python调用此API。开发者可借此为电商项目提供数据支持。
|
12月前
|
存储 安全 数据中心
数据中心概述
数据中心是包含计算机系统、通信设备及配套环境控制、安全装置的复杂设施,用于集中存储、处理和传输数据。根据用途可分为企业、运营商和互联网数据中心。其基础设施涵盖机房、供电、散热、网络设备及管理软件。发展历程从大型机时代逐步演进至云计算时代,现以大规模、资源池化为特征。
1220 0
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型需要的技术:生成式AI时代的全栈能力图谱
本文探讨生成式AI推动下的数字化转型技术需求转变,从技术本质、实施路径、伦理规制三方面解构核心要素。技术本质从工具理性进化到能力体系,需建立模型思维、多模态交互和自主进化能力。实施路径分为认知重构、实验验证与迭代优化三个阶段。同时,文章介绍生成式人工智能认证(GAI认证)的战略价值,强调其在能力基准建立、技术合作及创新生态接入中的作用。最后,文章分析组织能力进化与未来技术前沿,如认知智能、具身智能和群体智能的演进方向,为企业提供全面的技术赋能与战略转型指导。
|
人工智能 数据处理 语音技术
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
LatentLM是由微软研究院和清华大学联合推出的多模态生成模型,能够统一处理离散和连续数据,具备高性能图像生成、多模态大型语言模型集成等功能,展现出卓越的多模态任务处理能力。
648 29
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
|
存储 缓存 数据挖掘
《解锁反规范化设计的适用场景:数据库性能优化的深度洞察》
数据库设计中,规范化与反规范化是两种重要策略。规范化减少冗余、确保一致性,而反规范化通过增加冗余提升查询性能,适用于数据查询密集型场景、复杂分析与报表生成、历史数据与日志管理、分布式与缓存架构以及性能优化等场景。例如,在电商平台商品展示中,反规范化可避免多表连接,提高查询效率;在数据分析中,整合相关表简化查询逻辑;在日志管理中,集中存储提升性能。然而,反规范化会带来数据冗余和一致性维护的挑战,需根据业务需求权衡利弊,合理应用以构建高效稳定的数据库系统。
389 6

热门文章

最新文章