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

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

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



下面我们通过几个例子来说明一下匹配规则中的各个关键字如何使用。

 

match_mapping_type

 

match_mapping_type用于按照数据类型匹配,当用户想对 JSON 中具有某种数据类型的字段设置做特殊配置时,可以用此种匹配方式。该字段可配置的数据类型有如下几种:

 

l boolean,匹配值是 true 或 false 的字段。

date,当字符串开启了时间类型识别且字符串符合预设日期格式则会被匹配。

l double,匹配含有小数的字段。

l long,匹配值是整型的字段。

l object,匹配值是对象的字段。

l string,匹配值是字符串的字段。

l *,表示所有数据类型即匹配所有字段。

 

之前我们提到 Elasticsearch 会自动将整型字段自动创建为long型,如果我们知道文档中所有数值都不会超过int范围,那么我们可以用如下配置,让所以非小数的数值字段自动创建为

integer类型。

 

PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic_templates": [
      {
        "test_float": {
          "match_mapping_type": "long", # 值是整型的字段会被匹配
          "mapping": {
            "type": "integer"  # 字段 type 统一设为 integer
          }
        }
      }
    ]
  }
}

match 、unmatch

 

在生产使用中最多的场景,是根据字段的名称进行匹配。这时就可以用match和unmatch这两种匹配方式。match匹配的是符合设置的所有字段,unmatch匹配的是不符合某种配置的所有字段。在设置匹配规则时可以使用*表 0 个或多个字符。


比如下面这个模板就表示所有属性名以long_开头且不以_text结尾的字段配置其type为long。

PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic_templates": [
      {
        "test_float": {
          "match": "long_*", # 属性名以 long_ 开头
          "unmatch": "*_test", # 属性名不以 _test 结尾
          "mapping": {
            "type": "long"  # 字段 type 设为 long
          }
        }
      }
    ]
  }
}

match_pattern

 

仅仅使用通配符,可能不能满足我们多变的匹配需求,那么我们可以将match_pattern设为

regex,这时match字段就可以用正则表达式了。

 

比如下面这个模板就表示所有以profit_开头,后跟至少 1 位数字的属性,将它们的type设为keyword。

 

PUT test-dynamic-mapping
{
  "mappings": {
    "dynamic_templates": [
      {
        "test_float": {
          "match_pattern": "regex",  # match 使用正则表达式
          "match": "^profit_\d+$"  # 标准正则
          "mapping": {
            "type": "keyword"  # 字段 type 设为 keyword
          }
        }
      }
    ]
  }
}



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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
人工智能 物联网 测试技术
CodeFuse发布34B-4bit单卡4090可部署模型
CodeFuse 是蚂蚁集团自研的代码生成专属大模型,可以根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释、自动生成测试用例、修复和优化代码等,以提升研发效率。
1265 0
CodeFuse发布34B-4bit单卡4090可部署模型
|
4月前
|
人工智能 自然语言处理 知识图谱
Geo优化评定标准深度解析:“两大核心+四轮驱动”理论与实践
生成式AI浪潮下,传统SEO已失效,GEO(生成式引擎优化)成为新核心。于磊老师首创“两大核心(人性化Geo+内容交叉验证)+四轮驱动(E-E-A-T、精准引用、结构化内容、语义关键词)”方法论,强调真实经验、多源验证与AI信任构建,助力企业提升AI可见度40%+,实现高质量获客。
267 2
|
5月前
|
IDE 编译器 开发工具
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
358 1
|
JSON API 数据格式
淘宝天猫商品评论API接口指南
淘宝天猫商品评论API接口助您高效获取评论数据。首先注册淘宝开放平台账号并完成实名认证,接着创建应用、申请权限(如“tmall.item.evaluate.get”),最后用编程语言调用API。该接口支持多样化数据(用户昵称、评分、追评等)、灵活筛选与分页功能,并依托淘宝技术确保实时性和稳定性,满足数据分析需求。
780 11
|
10月前
|
存储 人工智能 数据挖掘
MCP应用场景示例
MCP赋能智能数据分析与办公自动化:分析师输入需求,AI即连多源数据生成报告;办公助手通过MCP获取会议记录、整理并邮件分发,实现高效协同。
|
10月前
|
弹性计算 运维 监控
资源闲置“杀手”:利用费用中心与云监控定时清理僵尸资源
在云计算时代,企业常因“僵尸资源”造成高达30%的云成本浪费。本文教你如何借助阿里云费用中心与云监控,精准识别闲置ECS、EIP、云盘等资源,结合运维编排OOS实现自动化清理,构建从发现到处置的闭环体系,推动云成本从被动支付转向主动治理,全面提升资源利用率与财务效能。(238字)
|
11月前
|
存储 监控 定位技术
GPS 人员定位系统:原理拆解 + 优劣分析 + 避坑指南(二)
本文深入剖析GPS人员定位系统的核心优劣:户外信号广、成本低,但室内易失效、抗干扰弱。针对遮挡环境下的定位痛点,提出“GPS+UWB/蓝牙”融合方案,实现室内外无缝切换,并给出场景适配与避坑建议。
|
10月前
|
数据采集 JSON 数据处理
Python编程实战:从函数到模块化——创建自己的模块与包
Python模块化编程通过拆分代码为模块和包,提升项目可维护性与复用性。合理使用import、包结构、__init__.py及最佳实践,可构建清晰、高效的代码体系,助力项目从“能运行”迈向“易维护”。(238字)
538 0
|
11月前
|
数据采集 Web App开发 API
技术探索:获取拼多多商品券后价数据的接口方案
本文介绍获取拼多多商品券后价的三种技术方案:推荐使用官方开放平台API,合规稳定;可通过Web页面解析但存在法律风险;或借助第三方数据服务商间接获取。强调合规优先、遵守平台规则,避免爬虫风险,确保数据准确与时效。
1142 0
|
缓存 自然语言处理 监控
速卖通全球运营利器:商品详情接口多语言 + 合规 + 物流适配技术全解析
速卖通全球化适配是跨境成功关键!本文详解2025最新接口方案,涵盖多语言智能翻译、合规自动校验、物流精准推荐与性能优化四大模块,助力商家提升转化率30%+,降低风险,提效80%。附实操代码与新手三步走策略,适合所有想出海的卖家。

热门文章

最新文章