带你读《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并实现搜索。  
相关文章
|
存储 Java Android开发
Rockchip系列之UART 新增framework系统jni+service接口访问(2)
Rockchip系列之UART 新增framework系统jni+service接口访问(2)
240 1
|
机器学习/深度学习 供应链 安全
TSMixer:谷歌发布的用于时间序列预测的全新全mlp架构
这是谷歌在9月最近发布的一种新的架构 TSMixer: An all-MLP architecture for time series forecasting ,TSMixer是一种先进的多元模型,利用线性模型特征,在长期预测基准上表现良好。据我们所知,TSMixer是第一个在长期预测基准上表现与最先进的单变量模型一样好的多变量模型,在长期预测基准上,表明交叉变量信息不太有益。”
871 1
|
存储 算法 数据挖掘
C语言中如何快速找出数组最大值下标
C语言中如何快速找出数组最大值下标
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
【Shell 命令集合 系统管理 】Linux 切换当前用户身份为另一个用户 su命令 使用指南
1039 1
|
小程序 前端开发
如何在企业微信中使用微搭低代码
如何在企业微信中使用微搭低代码
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型需要的技术:生成式AI时代的全栈能力图谱
本文探讨生成式AI推动下的数字化转型技术需求转变,从技术本质、实施路径、伦理规制三方面解构核心要素。技术本质从工具理性进化到能力体系,需建立模型思维、多模态交互和自主进化能力。实施路径分为认知重构、实验验证与迭代优化三个阶段。同时,文章介绍生成式人工智能认证(GAI认证)的战略价值,强调其在能力基准建立、技术合作及创新生态接入中的作用。最后,文章分析组织能力进化与未来技术前沿,如认知智能、具身智能和群体智能的演进方向,为企业提供全面的技术赋能与战略转型指导。
|
运维 安全 数据安全/隐私保护
云时代下的企业运维:挑战与解决策略
随着云计算技术的日益成熟和普及,企业IT运维面临着前所未有的变革。传统的运维模式已难以满足现代业务对速度、灵活性和成本效益的要求。本文将深入探讨在云环境下企业运维面临的主要挑战,包括资源管理的复杂性增加、安全威胁的多样化以及合规性的严格要求。同时,文章也将提供一系列针对性的解决策略,旨在帮助企业构建一个高效、安全且具有弹性的运维体系。
|
JavaScript 前端开发 算法
设计一个JavaScript版的“俄罗斯方块”游戏
【5月更文挑战第14天】设计一个JavaScript版的“俄罗斯方块”游戏,涉及的主要逻辑包括:初始化游戏环境(创建容器,设定变量,加载音效)、生成及控制方块、处理方块碰撞与消除、游戏结束判断以及游戏循环与状态管理。伪代码展示了游戏循环中的关键步骤,如生成方块、移动、锁定、碰撞检测、行消除和游戏结束条件。实际实现需考虑更多细节,如方块形状、移动逻辑、碰撞算法、分数计算,以及动画和音效等。
363 1
|
存储 SQL 运维
揭秘如何通过日志服务实现个人敏感信息保护
【2月更文挑战第3天】阿里云日志服务SLS(Simple Log Service)为保护个人敏感信息提供了全面的数据安全策略。在数据采集阶段,客户端可以对包含敏感信息的日志进行AES加密后上报至SLS中心Logstore,利用HTTPS加密链路保障传输安全。在存储环节,SLS支持对敏感字段进行专门的脱敏处理,如替换、哈希或截断等手段,确保原始敏感信息不被明文暴露。对于需要使用日志数据的业务方,SLS允许在分发前对敏感数据进行解密并再次脱敏,以满足合规性和安全性要求。通过精细的权限管理和审计功能,SLS可记录所有访问和操作日志,确保任何对敏感数据的操作都可追溯。
|
Rust
Rust 最新版1.75.0升级记
Rust 最新版1.75.0升级记
485 0
Rust 最新版1.75.0升级记

热门文章

最新文章

下一篇
开通oss服务