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

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


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


path_match 、 path_unmatch

 

在 Elasticsearch 中存储的文档允许有内嵌对象,当还有多层内嵌对象时,属性一般有路径的概念。属性的路径也可以作为匹配的条件。这个配置的用法与match和unmatch雷同,但需要注意的是match和unmatch仅作用于最后一级的属性名。

 

如下模板表示设置person内嵌对象除了age外其它所有以long_开头的字段新增时类型设为

text。


PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic_templates": [
      {
        "test_float": {
          "match_pattern": "long_",  # 以 long_ 开头
          "path_match": "person.*",  # 内嵌对象 person 所有字段
          "path_unmatch": "*.age"    # 排除 age 字段
          "mapping": {
            "type": "text"  # 字段 type 设为 text
          }
        }
      }
    ]
  }
}

其它技巧及注意事项

 

在日常生产中难免有这样的需求,字段是什么类型就将类型设为什么,字段名是什么就用什么解析器。对于这种需求我们在配置动态模板的mapping时,可以使用占位符{name} 表示字段名,用 {dynamic_type}表示识别出的字段类型 。

 

比如下面 2 个模板一起表示的意思是,所有新增字符串类型字段,其解析器是字段的名称,所有其他类型字段新增时,类型就设为识别的字段类型,但是doc_value设为 false.


PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic_templates": [
      {
        "named_analyzers": {  # 字段名即是该字段的解析器名称
          "match_mapping_type": "string", # 匹配所有 string 类型
          "match": "*",  # 匹配任意属性名
          "mapping": {
            "type": "text",
            "analyzer": "{name}"  # 解析器是字段名
          }
        }
      },
      {
        "no_doc_values": {  
         # 匹配所有类型,但匹配string的在前,所以
实际匹配除string的其他所有字段
          "match_mapping_type":"*", 
          "mapping": {
            "type": "{dynamic_type}", # 类型直接作为type
            "doc_values": false
          }
        }
      }
    ]
  }
}
​
PUT test-dynamic-mapping/_doc/1
{
  "english": "Some English text",  # 该字段是新字段,会在mapping中新增会用english解析器
  "count":   5  # 该字段的类型会是 long, doc_values为false
}

在使用动态模板时,还有以下几点需要注意。

 

1、所有null值及空数组属于无效值,不会被任何动态模板匹配,在索引文档时,只有字段第一次有有效值时,才会与各动态模板匹配,找出匹配的模板创建新字段。

2、规则匹配时,按照动态模板配置的顺序依次对比,使用最先匹配成功的模板,这就意味着如果有字段同时符合 2 个动态模板,那么会使用在dynamic_templates数组中靠前的那个。每个动态模板的匹配方式至少应包含match、path_match、match_mapping_type中的一个,

unmatch和path_unmatch不能单独使用。

3、mapping的dynamic_templates字段是可以在运行时修改的,每次修改会整体替换dynamic_templates的所有值而非追加。

比如下面的请求就是将映射test-dynamic-mapping原来的动态模板配置删除,并配一个名为newTemplate的动态模板。


PUT test-dynamic-mapping/_mapping
{
  "dynamic_templates": [
    {
      "newTemplate": {
        "match": "abc*",
        "mapping": {
          "type": "keyword"
        }
      }
    }
  ]
}


创作人简介:

骆潇龙,高级 Java 开发工程师,关注大数据技术领域。

博客:https://blog.gaiaproject.club/

 

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
7月前
|
弹性计算 人工智能 运维
2026年阿里云服务器收费价格表(轻量/ECS/GPU,年付/月付/流量)
本文将详细介绍2026年阿里云服务器的收费价格表,涵盖轻量应用服务器、ECS云服务器和GPU服务器三大品类,以及年付、月付和按流量计费等多种模式。
1166 9
|
7月前
|
数据采集 自动驾驶 机器人
【信号处理】通过 “最近邻匹配” 和 “球面线性插值(SLERP)” 两种方式将 GNSS 位姿(位置 + 四元数插值到激光雷达时间戳附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 1. 引言:为什么需要位姿时间戳对齐? 在自动驾驶、移动测绘、机器人导航等场景中,GNSS(全球导航卫星系统)负责提供高精度位姿(位置 X/Y/Z + 姿态四元数 Qx/Qy/Qz/Qw),激光雷达负责采集环境点云数据,二者需通过时间戳对齐才能实现点云与地理坐标的精准融合 ——
281 1
|
缓存 自然语言处理 API
阿里云百炼产品月刊【2025年8月】
阿里云百炼平台8月推出多项更新与活动。通义千问系列重磅升级,新增多款图像、语音及研究模型,如Qwen-Image、Qwen-Image-Edit、Qwen-MT-Image、Wan2.2-S2V等,全面增强图文生成与编辑能力。推出Qwen-Flash轻量模型,优化代码与推理性能,支持高并发低延迟场景。平台服务稳定性提升,部分模型计费策略调整,上下文缓存价格降低至input_token的20%,并提供100万免费token额度。同步上线“实训Agent创客”活动,助力用户快速上手新模型,提升实践能力。
1186 0
|
7月前
|
缓存 前端开发 JavaScript
Selenium自动化测试中元素Click事件常见错误解析与实战解决方案
本文详解Selenium元素点击失败的三大根源:页面加载不同步、定位不精准、浏览器交互限制,并提供显式等待、优化定位、JavaScript点击、ActionChains模拟等实战方案,助你高效提升自动化测试稳定性与成功率。(239字)
1357 11
|
9月前
|
人工智能 自然语言处理 数据可视化
阿里云建站——云小智AI建站收费价格,免费送CN域名
阿里云万小智AI建站,提供基础版698元/年、标准版980元/年、企业版1980元/年,买即赠CN域名。支持AI建站、多语言、可视化编辑,集成云资源,限时送AI灵感值,轻松搭建品牌官网。
|
7月前
|
SQL 人工智能 分布式计算
MaxCompute SQL AI 实践:电商用户评论情感洞察与关键词提取
本实践基于阿里云MaxCompute SQL AI功能,仅用SQL即可完成电商评论的情感分类(正/负/中性)与关键词提取,无需Python开发。内置模型开箱即用,业务人员零门槛上手,10万条评论分析仅需数秒,显著提升非结构化文本洞察效率。(239字)
670 4
|
8月前
|
机器学习/深度学习 文字识别 测试技术
10B击败200B!阶跃星辰10B视觉语言SOTA模型开源
阶跃星辰发布开源多模态小模型Step3-VL-10B,仅10B参数却媲美百亿级大模型,在视觉感知、逻辑推理、数学竞赛等任务中达同规模SOTA,支持端侧部署,推动智能终端交互革新。
730 6
|
10月前
|
人工智能 搜索推荐 新能源
Geo优化专家于磊:“两大核心+四轮驱动”Geo优化方法论,助力企业实现AI时代获客提效
于磊老师首创“两大核心+四轮驱动”Geo优化法,以人性化内容与交叉验证构建权威,通过E-E-A-T、结构化数据、精准关键词与权威引用,助力企业提升AI搜索可见性与获客效率。
834 8
|
11月前
|
人工智能 自然语言处理 算法
数字人|数字人平台新推荐与选择指南
数字人企业正以技术革新重塑产业生态。像衍科技凭借全栈技术与科研实力领跑,追光数字、灵境智能分别在场景落地与情感交互上突破。虚拟与现实融合加速,数字人迈向自主进化,开启下一代交互新纪元。(238字)

热门文章

最新文章