带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)

简介: 带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)

3.4.2.17.2.Schemaless


创作人:王福强

审稿人:欧阳楚才

 

Elasticsearch 一个重要特点是简化用户操作,让你尽快开始探索数据。 要写入文档,你不用先创建索引、定义映射类型和定义字段 - 你可以只索引文档,那么 index、type 和 field 将自动生成。


PUT data/_doc/1 
{ "count": 5 }

上面的命令将自动帮我们生成一个叫做 data 的 index,并同时生成一个叫做count的 field。count 的数据类型是 long。

 

自动检测和添加新字段称为动态字段映射。动态字段映射规则可以根据动态模板自由定制:

 

l 动态字段映射:动态字段检测的规则。

l 动态模板:用于配置动态添加字段映射的自定义规则。

 

动态字段映射

 

当 Elasticsearch 在文档中检测到新字段时,它默认动态地将该字段添加到类型映射中。

你可以使用 dynamic 属性(四个选项)控制添加到映射的新字段的效果:

 

 

 image.png


上面的表格显示,当一个新的字段被添加到一个索引中,并且这个字段之前没有在 mapping 中定义:

 

l 在 dynamic 为 true 时,这个文档将被建立索引,从而新增加的字段将是可以被搜索及应用于聚合,mapping 也会自动更新

l 在 dynamic 为 false 时,这个文档将被建立索引,但是新的字段将不被建立索引,mapping 将不被更新(包含新的字段的mapping)

l 在 dynamic 为 strict 时,这个文档将不被建立索引

l 在 dynamic 为 runtime 时,这个文档将被建立索引,而且这个 runtime 字段可以被搜索,但是字段没有被分词。关于 runtime 请参阅官方文档:Map a runtime field

 

提示:你可以使用 update mapping API 更新现有字段的 dynamic 设置。

 

你可以自定义日期检测和数值检测的动态字段映射规则。 要定义可应用于其他动态字段的自定义映射规则,请使用 dynamic_templates。

 

日期检测

 

如果 date_detection 已启用(默认),则检查新字符串字段以查看其内容是否与 dynamic_

date_formats 中指定的任何日期模式匹配。 如果找到匹配项,则会添加一个具有相应格式的新日期字段。

 

dynamic_date_formats 的默认值为:


[ "strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]

 

动态模板

 

动态模板允许你在默认动态字段映射规则基础上更好地控制 Elasticsearch 如何映射你的数据。 你可以通过将 dynamic 参数设置为 true 或 runtime 来启用动态映射。 然后,你可以使用动态模板来定义自定义映射,这些映射可以根据匹配条件应用于动态添加的字段:

 

l match_mapping_type 对 Elasticsearch 检测到的数据类型进行操作。

l match 和 unmatch 使用正则来匹配字段名称。

l path_match 和 path_unmatch 对字段的路径进行操作。

l 如果动态模板没有定义 match_mapping_type、match 或 path_match,它将不会匹配任何字段。

 

动态模板由命名对象的数组来定义的:


"dynamic_templates": [
    {
      "my_template_name": { (1)
        ... match conditions ... (2)
        "mapping": { ... } (3)
      }
    },
    ...
  ]

1、template 的名字可以是任何一个字符串

2、匹配的条件可以是这里的任何一种 match_mapping_type , match , match_pattern ,  unmatch , path_match , path_unmatch

3、被匹配的字段的 mapping

 以下请求定义了一个名为 strings_as_ip 的动态模板。 当 Elasticsearch 检测到与 ip* 模式匹配的新字符串字段时,它会将这些字段映射为 ip 类型的运行时字段。 因为 ip 字段不是动态映射的,所以你可以将此模板与 "dynamic":"true" 或 "dynamic":"runtime" 一起使用。

 

PUT my-index-000001/
{
  "mappings": {
    "dynamic_templates": [
      {
        "strings_as_ip": {
          "match_mapping_type": "string",
          "match": "ip*",
          "runtime": {
            "type": "ip"
          }
        }
      }
    ]
  }
}



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.2.Schemaless(下) https://developer.aliyun.com/article/1230157

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
存储 算法 Java
JAVA后端开发面试题库
JAVA后端开发面试题库
385 1
|
存储 搜索推荐 NoSQL
2021-Java后端工程师面试指南-(Elasticsearch)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
351 0
|
6天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
6228 8
|
4天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1174 3
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
5天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
713 4
|
18天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3341 10
|
17天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
1855 8
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
|
13天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
1399 1

热门文章

最新文章