Elasticsearch的Mapping

Elasticsearch的Mapping

Mapping是什么

  1. Mapping定义了ES的索引结构、字段类型、分词器等,是索引的一部分。
  2. 类似于关系型数据库中“表结构”的概念,在 Mapping 里也包含了一些属性,比如字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性

查看索引Mapping

  1. 查看索引完整mapping: get /my_index/_mappings
  2. 查看索引指定字段的mapping: get /my_index/_mappings/field/xxx

字段数据类型(常用)

  1. 数字类型:long、integer、short、byte、double、float
  2. 基本数据类型:boolean、alias
  3. keywords类型:
  4. keyword:用于索引结构化字段,可用于过滤、排序、聚合,keyword类型只能通过精确值搜索到,比如ID、姓名等
  5. wildcrd:可以针对类似grep的,用于模糊查询
  6. 时间类型:date、data_nanos
  7. 对象类型:
  8. object:非基本类型之外,默认的json对象为Object
  9. flattened:单映射对象类型、其值为json对象
  10. nested:嵌套类型
  11. join:父子关系类型
  12. 空间数据类型:
  13. geo_point:空间中的点,比如经纬度
  14. geo_shape:复杂型状,比如多边形
  15. 文本搜索类型:
  16. text:文本类型,适用于全文检索
  17. completion:用于自动补全,即搜索推荐

映射类型(两种)

自动映射-Dynamic Field Mapping(不推荐使用)

es在增加数据的时候如果没有指定字段的类型,es会自动分配类型

  1. 如果是true或false默认boolean
  2. 如果是小数默认float
  3. 如果是数字默认long
  4. 如果是object默认object
  5. 如果数组取决于数组中第一个非空元素类型
  6. 如果是日期格式字符串默认date
  7. 如果是数字类型字符串默认float或long
  8. 如果其它字符串默认text+keyword
显示映射-Expllcit Field Mapping

在创建Mapping时候,手动创建类型

例子:

PUT my_index
{"mappings": {"properties": {"name": {"type": "text"},"age": {"type": "integer"}}}
}

映射参数

映射参数就是在创建索引时候的mapping中可以配置什么参数,分别代表什么含义

  1. index:表示对当前自动创建倒排索引,默认true,如果不创建索引,则不可以通过当前字段作为搜索条件
  2. analyzer:指定分词器,只可以对可以分词的字段类型使用
  3. boots:对当前字段相关度评分权重,默认1
  4. coerce:是否允许强制类型转换
  5. copy_to:用于将其它字段拼接后存储到当前字段中
  6. doc_value:默认为true,可以提高排序和聚合的效率
  7. dynamic:控制是否可以动态添加新的字段
  8. strict:如果检测到新字段,会引发异常并拒绝文档,必须将新字段显示的添加到mapping中
  9. eager_global_ordinals:用于聚合字段,提示聚合性能,
  10. enabled:是否创建倒排索引,可以作用于mapping也可以作用于field上
  11. fielddata:查询时内存数据结构,在内存中存储,设置字段为filedata会给该字段创建倒排索引并放到内存中。
  12. field:当前字段的子字段
  13. format:定义日期格式
  14. ignore_above:超过长度的内容被忽略,不被存储
  15. ignore_malformed:忽略类型错误
  16. index_phrases:提升exact_value查询速度
  17. index_prefixes:前缀检索,有两个属性
  18. min_chars:前缀最小长度,默认2
  19. max_chars:前缀最大长度,默认5最大20
  20. meta:添加元数据
  21. norms:是否禁用评分
  22. null_value:为空值赋值默认值
  23. properties:在mapping中可以配置字段的属性
  24. search_analyzer:设置单独的查询分析器,默认和analyzer一致,如果两者都没设置默认为”standard"。analyzer针对元数据,search_analyzer针对搜索的内容。
  25. similarity:为字段设置相关度算法
  26. store:设置字段是否创建索引
  27. term_vector:运维参数

映射模板

映射模板用来解决不确定的类型或字段名索引的创建,可以理解为批量处理索引的mapping

例子:给user索引创建两个模板,第一个模板将long类型的属性默认转换为integer类型,第二个模板将以sum_开头的字段且不以_text结尾的字段且为String类型的字段转换为keyword类型

put user3
{"mappings":{"dynamic_templates":[{"long-to-integer":{"match_mapping_type": "long","mapping":{"type": "integer"}}},{"num_and_string":{"match_mapping_type":"string","match":"num_*","unmatch":"*_text","mapping":{"type":"keyword"}}}]}
}

查看索引

{"user3": {"mappings": {"dynamic_templates": [{"long-to-integer": {"match_mapping_type": "long","mapping": {"type": "integer"}}},{"num_and_string": {"match": "num_*","unmatch": "*_text","match_mapping_type": "string","mapping": {"type": "keyword"}}}],"properties": {"age": {"type": "integer"},"firends": {"properties": {"age": {"type": "integer"},"num_test1": {"type": "keyword"}}},"name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"num_test2": {"type": "keyword"},"num_test2_text": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频上面怎样编辑文字?4种视频编辑文字方法分享

视频已成为我们日常生活中不可或缺的一部分。无论是社交分享、商业宣传还是个人记录,视频都以其直观、生动的特点吸引着观众的眼球。然而,一个优质的视频,除了画面和音效,文字编辑也是提升观看体验的关键。那么,如何在…

Webpack: 并行构建

概述 受限于 Node.js 的单线程架构,原生 Webpack 对所有资源文件做的所有解析、转译、合并操作本质上都是在同一个线程内串行执行,CPU 利用率极低,因此,理所当然地,社区出现了一些以多进程方式运行 Webpack&#xff0…

1390 - 四位数的和

问题描述 请从键盘读入一个四位整数&#xff0c;求这个四位整数各个位的和是多少&#xff1f; 输入 一个四位整数 n 。 输出 这个四位数各个位的和。 样例 输入 3456 输出 18 代码1 #include <iostream>int main() {int n;std::cin >> n;int sum 0;su…

Redis学习——Redisson 分布式锁集成及其简单使用

文章目录 引言1. Redisson概述1.1 Redisson的基本概念1.2 Redisson的主要功能1.3 Redisson的优点 2. 开发环境3. Redisson的安装与配置3.1 添加依赖3.2 配置Redisson 4. 使用Redisson4.1 可重入锁4.1.1 可重入锁的概念4.1.2 可重入锁的实现原理4.1.3 简单使用锁的获取和释放 4.…

在线疫苗预约小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;工作人员管理&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;疫苗管理&#xff0c;论坛管理&#xff0c;公告管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;公告&#xff0c;疫苗&…

【FreeRTOS】空闲任务

目录 空闲任务及其钩子函数介绍使用钩子函数的前提 实际操作任务如何退出&#xff1f;IDLE函数 空闲任务及其钩子函数 介绍 空闲任务(Idle任务)的作用之一&#xff1a;释放被删除的任务的内存。 除了上述目的之外&#xff0c;为什么必须要有空闲任务? 这是一个良好的程序&…

fastapi登录功能

fastapi登录功能 1、登录参数必须是OAuth2PasswordRequestForm类型 因为在swagger UI中的登录使用的表单传账号和密码这个类依赖python-multipart&#xff0c;使用前需安装 pip install python-multipart2、示例代码 login_router.post("", summary"登录&qu…

Linux基础 - DHCP 动态管理主机地址

目录 零. 简介 一. 部署 dhcpd 二. 提高安全性 零. 简介 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是一种网络协议&#xff0c;用于动态地为主机分配 IP 地址、子网掩码、默认网关、DNS 服务器等网络配置信息。 其主要…

鸿蒙 HarmonyOs 动画效果 快速入门

一、理论 1.1 animation属性 名称参数类型必填描述durationnumber否设置动画时长&#xff0c;默认值&#xff1a;1000&#xff0c;单位&#xff1a;毫秒temponumber否动画播放速度。数值越大&#xff0c;速度越快&#xff0c;默认为1curvestring | Curve否 设置动画曲线。 默…

ubuntu 23 连接正点imx6ull的uboot

由于使用ubuntu23&#xff0c;无法连接正点的imx6ull的uboot&#xff0c;因为这个uboot里面的nfs是v2&#xff0c;ubuntu23内核是6.5不支持uboot v2。配置/etc/default/nfs-kernel-server sudo vim /etc/default/nfs-kernel-server 更改以下参数&#xff1a; RPCNFSDCOUNT"…

C语言--vs使用调试技巧

1.什么是bug? 1.产品说明书中规定要做的事情&#xff0c;而软件没有实现。 2.产品说明书中规定不要做的事情&#xff0c;而软件确实现了。 3.产品说明书中没有提到过的事情&#xff0c;而软件确实现了。 4.产品说明书中没有提到但是必须要做的事情&#xff0c;软件确没有实…

vue3中使用弹幕组件vue-danmaku

1、最开始使用的是vue3-marquee&#xff0c;后面发现一直有一个bug无法解决&#xff0c;就是鼠标hover到第一个弹幕上字体就会变粗&#xff0c;已经提了issue给作者&#xff0c;但是目前还未答复&#xff0c;所以就换了方案。 地址如下&#xff1a; https://github.com/megasa…

stable-diffusion-webui-colab搭建SadTalker由图生成视频人

在这里选择一个stable-diffusion-webui-colab ​​​​​​​​​GitHub - camenduru/stable-diffusion-webui-colab: stable diffusion webui colab 这里我选择是&#xff1a; https://colab.research.google.com/github/camenduru/stable-diffusion-webui-colab/blob/main…

【Python时序预测系列】基于LSTM实现多输入多输出单步预测(案例+源码)

这是我的第312篇原创文章。 一、引言 单站点多变量输入多变量输出单步预测问题----基于LSTM实现。 多输入就是输入多个特征变量 多输出就是同时预测出多个标签的结果 单步就是利用过去N天预测未来1天的结果 二、实现过程 2.1 读取数据集 dfpd.read_csv("data.csv&qu…

CSS-实例-div 水平居中 垂直靠上

1 需求 2 语法 3 示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>表格水平居中、垂直靠上示例…

AI 上车的一些随想

​最近一直在做AI大模型上车的战略企划工作&#xff0c;听了好多供应商的宣讲&#xff0c;自己也查阅了大量书籍、资料。信息输入呈现爆炸性增长&#xff0c;受限于专业知识水平&#xff0c;仅能在应用层面上有所思考。纯个人观点&#xff0c;仅供参考。 车自古以来都是移动工…

2024年06月CCF-GESP编程能力等级认证Scratch图形化编程四级真题解析

本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(共 10 题,每题 2 分,共 30 分) 第1题 小杨父母带他到某培训机构给他报名参加 CCF 组织的 GESP 认证考试的第 1 级,那他可以选择的认证语言有几…

前端面试题(基础篇十四)

一、DOMContentLoaded 事件和 Load 事件的区别&#xff1f; 当初始的 HTML 文档被完全加载和解析完成之后&#xff0c;DOMContentLoaded 事件被触发&#xff0c;而无需等待样式表、图像和子框架的加载完成。 Load 事件是当所有资源加载完成后触发的。 二、简述一下你对 HTML 语…

机器学习 中数据是如何处理的?

数据处理是将数据从给定形式转换为更可用和更理想的形式的任务&#xff0c;即使其更有意义、信息更丰富。使用机器学习算法、数学建模和统计知识&#xff0c;整个过程可以自动化。这个完整过程的输出可以是任何所需的形式&#xff0c;如图形、视频、图表、表格、图像等等&#…