当前位置: 首页 > news >正文

Elasticsearch之mapping

文章目录

  • 以显式的方式创建一个映射
  • 查看某个具体索引的mapping定义
  • 向已存在的映射中添加一个新的属性
  • 查看映射中指定字段的定义信息
  • 更新已存在映射的某个字段

1、 官方文档地址
2、 字段类型

1、定义:映射是定义文档及其包含的字段如何存储和索引的过程。
2、每个文档都是字段的集合,每个字段都有自己的数据类型。
3、在映射数据时,可以创建一个映射定义,其中包含与文档相关的字段列表
4、映射定义还包括元数据字段,如_source字段,它自定义如何处理文档的关联元数据。
5、可以使用动态映射显式映射这两种方式来定义数据。

以显式的方式创建一个映射

显式映射允许您精确地选择如何定义映射,例如:

  • 哪些字符串字段应被视为全文字段。
  • 哪些字段包含数字、日期或位置。
  • 日期值的格式。
  • 自定义规则来控制动态添加字段的映射。

显式的创建映射;即在还没有向索引中添加数据之前就通过定义自定义的映射将其创建

PUT /my-index-000001
{"mappings": {"properties": {"age":    { "type": "integer" },  "email":  { "type": "keyword"  }, "name":   { "type": "text"  }     }}
}

在这里插入图片描述

查看某个具体索引的mapping定义

GET index_name/_mapping

GET bank/_mapping

可以看到mapping中定义的字段类型,其中account_number是long类型、address字段是全文检索,并且它还定义了下面的keyword属性是个keyword类型,即不可分词。这也很好的解释了address.keyword为什么是精确匹配
在这里插入图片描述

向已存在的映射中添加一个新的属性

之前使用已经为my-index-000001这个索引定义好映射信息了,如下

PUT /my-index-000001
{"mappings": {"properties": {"age":    { "type": "integer" },  "email":  { "type": "keyword"  }, "name":   { "type": "text"  }     }}
}

现在想在对其添加一个新的属性employee_id,该怎么操作呢?如下图中的代码片段所示

PUT /my-index-000001/_mapping
{"properties": {"employee-id": {"type": "keyword","index": false}}
}

在这里插入图片描述
其中"index": false表示当前字段不能被索引;这个index和type一样都叫 mapping parameters,这里是官方文档的入口

查看映射中指定字段的定义信息

比如,只想查看my-index-000001中的employee_id字段的定义信息,可以使用以下命令

GET /my-index-000001/_mapping/field/employee-id

该API响应的结果如下:

{"my-index-000001" : {"mappings" : {"employee-id" : {"full_name" : "employee-id","mapping" : {"employee-id" : {"type" : "keyword","index" : false}}}}}
}

更新已存在映射的某个字段

该小节只进行简单的记录,具体操作阅读官方文档寻找对应的解决方案

官方明确说明:除了支持的映射参数外,您不能更改现有字段的映射或字段类型。更改现有字段可能会使已经索引的数据无效;如果需要更改索引中字段的映射,请创建具有正确映射的新索引,并将数据重新索引到该索引中。

  • 不能在已存在的映射上直接修改
  • 重新定义一个正确的映射
  • 使用reindex将数据迁移

官方在这里提到了一个名词 reindx ,这也是更新映射中某个字段的具体解决办法

http://www.lryc.cn/news/205100.html

相关文章:

  • 6、PostgreSQL 数据类型之一:数字类型和货币类型
  • 计算机视觉与深度学习 | 基于点线融合的视觉惯性SLAM前端
  • MDK与keilC51共存的方法
  • c_指针
  • 循环队列c语言版
  • SprringMVC拦截器
  • redis的实际使用
  • 造车先做三蹦子-之二:自制数据集(5x5数据集)230102
  • JS操作DOM及CSS
  • Linux内核VFS详解
  • 在自己的服务器上部署个人博客和开源项目:实现数字存在感
  • 【AI视野·今日Robot 机器人论文速览 第五十九期】Fri, 20 Oct 2023
  • Chromium浏览器启动参数
  • 【计算机视觉】MoCo v3 讲解
  • MySQL - 对字符串字段创建索引
  • Qt pro文件中 CONFIG += debug 作用
  • java解析生成定时Cron表达式工具类
  • 庆祝1024
  • 时间格式记录
  • hive插入动态分区数据时,return code 2报错解决
  • 解决报错:gnutls_handshake() failed: The TLS connection was non-properly terminated.
  • 《 汇编语言的系统学习》一、编程语言、机器语言与汇编语言
  • 【RocketMQ系列十四】RocketMQ中消息堆积如何处理
  • Ubuntu - sudo apt update 报错源问题解决方案
  • MSQL系列(八) Mysql实战-SQL存储引擎
  • vue3 + fastapi 实现选择目录所有文件自定义上传到服务器
  • html 常见兼容性问题
  • PCL 点云投影到圆柱(C++详细过程版)
  • 以太网链路聚合与交换机堆叠,集群
  • 5G RedCap工业智能网关