ES中的字段类型

前言

1、字段类型

在 Elasticsearch (ES) 中,字段类型定义了数据的格式和如何索引与存储字段的内容。每个字段都有一个类型,这决定了它如何在索引中存储、搜索和聚合。

这些数据类型可以组合使用,并根据实际的业务需求来选择最合适的数据类型。在创建索引时,映射(Mapping)用于定义每个字段的类型和其他属性(如是否分词、是否可索引、是否存储等)。

2、如何查看字段类型
GET /your_index_name/_mapping
{"your_index_name": {"mappings": {"properties": {"title": {"type": "text"},"description": {"type": "text"},"price": {"type": "float"},"created_at": {"type": "date"},"is_active": {"type": "boolean"}}}}
}

以下是 Elasticsearch 中常见的字段类型及其用途。

一、文本类型 (Text)

用于存储和分析全文本数据,适用于字符串、长文本等需要分词的字段。

1、text

用于存储大量的、需要分词的文本数据。Elasticsearch 会对 text 字段的内容进行分析和分词,这样可以支持全文搜索。Elasticsearch 默认会对 text 类型字段使用一个标准分析器(standard analyzer),将其分词成多个单词,以便进行高效的全文搜索。

注意:如果字段的类型是 text,ES 会自动为其创建一个名为 <字段名>.keyword 的子字段,用于精确匹配查询。

适用场景:文章内容、描述、评论等。示例:"description": { "type": "text" }

2、keyword

用于存储不需要分词的字符串数据,通常用于存储标识符、标签、状态、类别等数据。这些字段会被精确匹配,适合用在排序、聚合和过滤中。

适用场景:ID、电子邮件、用户名、状态码等。示例:"status": { "type": "keyword" }

二、数值类型

数值类型用于存储各种数字,包括整数、浮动小数等。

  • long:用于存储长整型数字,范围从 -2^63 到 2^63-1。

    • 示例:"age": { "type": "long" }
  • integer:用于存储整数,范围从 -2^31 到 2^31-1。

    • 示例:"year": { "type": "integer" }
  • short:用于存储较小的整数,范围从 -2^15 到 2^15-1。

    • 示例:"count": { "type": "short" }
  • byte:用于存储很小的整数,范围从 -128 到 127。

    • 示例:"byte_value": { "type": "byte" }
  • double:用于存储浮动小数,精度较高,范围从 -1.7e308 到 1.7e308。

    • 示例:"price": { "type": "double" }
  • float:用于存储浮动小数,精度较低,范围从 -3.4e38 到 3.4e38。

    • 示例:"rating": { "type": "float" }
  • half_float:用于存储精度较低的浮动小数,范围从 -6.5e4 到 6.5e4。

    • 示例:"temperature": { "type": "half_float" }
  • scaled_float:用于存储带小数的浮动数字,通过一个因子来缩放存储的数据。

    • 示例:"price": { "type": "scaled_float", "scaling_factor": 100 }
  • double_rangefloat_rangelong_rangeinteger_range:用于存储数值范围类型的数据,通常用于做范围查询。

    • 示例:"temperature_range": { "type": "double_range" }

三、日期类型date

日期类型用于存储时间戳或日期。默认的日期格式是 yyyy-MM-dd'T'HH:mm:ss.SSSZ,但可以根据需要进行配置。

示例:"timestamp": { "type": "date" }

四、布尔类型boolean

用于存储 truefalse 的值。

示例:"is_active": { "type": "boolean" }

五、二进制类型 (Binary)

用于存储二进制数据(例如图片、音频、视频等)。

示例:"file_data": { "type": "binary" }

六、IP 类型 (IP)

用于存储 IPv4 和 IPv6 地址。

示例:"ip_address": { "type": "ip" }

七、地理位置类型 (Geo)

用于存储地理位置信息。

1、geo_point

用于存储地理坐标(经度、纬度),支持地理位置查询。

示例:"location": { "type": "geo_point" }

2、geo_shape

用于存储复杂的地理形状(如多边形、圆形等),支持对地理区域的查询。

示例:"shape": { "type": "geo_shape" }

八、对象和嵌套类型

1、object

用于存储 JSON 对象。该类型表示字段中包含嵌套的键值对,可以嵌套多层结构。

示例:"address": { "type": "object" }

2、nested

object 类型类似,但它用于存储嵌套对象,并允许对嵌套对象内的字段进行查询和聚合。它会在查询时将嵌套的文档视为独立的文档。

"comments": {"type": "nested"
}

九、范围类型(Range Types)

  • integer_range: 存储整数范围。
  • float_range: 存储浮动小数范围。
  • date_range: 存储日期范围。
  • long_range: 存储长整数范围。

十、合并数据类型(Join)

用于实现父子关系数据建模,常用于表示父文档和子文档之间的关系。

"relationship": {"type": "join"
}

十一、文本多字段(Multi-fields)

在同一字段上定义多个字段类型,便于对数据进行不同方式的处理。例如,可以同时将字段作为 text 类型和 keyword 类型进行存储,以支持全文搜索和精确匹配。

"title": {"type": "text","fields": {"raw": {"type": "keyword"}}
}

十二、标识符类型(Completion)

用于实现高效的建议功能,通常用于自动补全(如搜索框自动提示)。

"suggest": {"type": "completion"
}

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

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

相关文章

Python 入门教程(2)搭建环境 | 2.4、VSCode配置Node.js运行环境

文章目录 一、VSCode配置Node.js运行环境1、软件安装2、安装Node.js插件3、配置VSCode4、创建并运行Node.js文件5、调试Node.js代码 一、VSCode配置Node.js运行环境 1、软件安装 安装下面的软件&#xff1a; 安装Node.js&#xff1a;Node.js官网 下载Node.js安装包。建议选择L…

redis核心命令全局命令 + redis 常见的数据结构 + redis单线程模型

文章目录 一. 核心命令1. set2. get 二. 全局命令1. keys2. exists3. del4. expire5. ttl6. type 三. redis 常见的数据结构及内部编码四. redis单线程模型 一. 核心命令 1. set set key value key 和 value 都是string类型的 对于key value, 不需要加上引号, 就是表示字符串…

哈希及其模拟实现

1.哈希的概念 顺序结构以及平衡树中&#xff0c;元素的关键码与其存储位置之间没有对应的关系。因此&#xff0c;在查找一个元素时&#xff0c;必须要经过关键码的多次比较。顺序查找的时间复杂度为O(N)&#xff0c;平衡树中为树的高度&#xff0c;即O(log_2 N)&#xff0c;搜…

k8s,声明式API对象理解

命令式API 比如&#xff1a; 先kubectl create&#xff0c;再replace的操作&#xff0c;我们称为命令式配置文件操作 kubectl replace的执行过程&#xff0c;是使用新的YAML文件中的API对象&#xff0c;替换原有的API对象&#xff1b;而kubectl apply&#xff0c;则是执行了一…

开源ISP介绍(1)——开源ISP的Vivado框架搭建

开源github链接&#xff1a;bxinquan/zynq_cam_isp_demo: 基于verilog实现了ISP图像处理IP 国内Gitee链接&#xff1a;zynq_cam_isp: 开源ISP项目 基于以上开源链接移植项目到正点原子领航者Zynq7020开发板&#xff0c;并对该项目的Vivddo工程进行架构详解&#xff0c;后续会…

[Redis#13] cpp-redis接口 | set | hash |zset

目录 Set 1. Sadd 和 Smembers 2. Sismember 3. Scard 4. Spop 5. Sinter 6. Sinter store Hash 1. Hset 和 Hget 2. Hexists 3. Hdel 4. Hkeys 和 Hvals 5. Hmget 和 Hmset Zset 1. Zadd 和 Zrange 2. Zcard 3. Zrem 4. Zscore cpp-redis 的学习 主要关注于…

GEOBench-VLM:专为地理空间任务设计的视觉-语言模型基准测试数据集

2024-11-29 ,由穆罕默德本扎耶德人工智能大学等机构创建了GEOBench-VLM数据集&#xff0c;目的评估视觉-语言模型&#xff08;VLM&#xff09;在地理空间任务中的表现。该数据集的推出填补了现有基准测试在地理空间应用中的空白&#xff0c;提供了超过10,000个经过人工验证的指…

设计模式 更新ing

设计模式 1、六大原则1.1 单一设计原则 SRP1.2 开闭原则1.3 里氏替换原则1.4 迪米特法则1.5 接口隔离原则1.6 依赖倒置原则 2、工厂模式 1、六大原则 1.1 单一设计原则 SRP 一个类应该只有一个变化的原因 比如一个视频软件&#xff0c;区分不同的用户级别 包括访客&#xff0…

nlp培训重点

1. SGD梯度下降公式 当梯度大于0时&#xff0c;变小&#xff0c;往左边找梯度接近0的值。 当梯度小于0时&#xff0c;减去一个负数会变大&#xff0c;往右边找梯度接近0的值&#xff0c;此时梯度从负数到0上升 2.Adam优化器实现原理 #coding:utf8import torch import torch.n…

电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用

文章目录 前言一. system函数1.1 system函数清理屏幕1.2 system函数暂停运行1.3 system函数电脑关机、重启 二、strcmp函数三、goto语句四、电脑关机小游戏4.1. 程序要求4.2. 游戏代码 总结 前言 今天我们写一点稍微有趣的代码&#xff0c;比如写一个小程序使电脑关机&#xf…

基础入门-Web应用OSS存储负载均衡CDN加速反向代理WAF防护部署影响

知识点&#xff1a; 1、基础入门-Web应用-防护产品-WAF保护 2、基础入门-Web应用-加速服务-CDN节点 3、基础入门-Web应用-文件托管-OSS存储 4、基础入门-Web应用-通讯服务-反向代理 5、基础入门-Web应用-运维安全-负载均衡 一、演示案例-Web-拓展架构-WAF保护-拦截攻击 原理&a…

Milvus×OPPO:如何构建更懂你的大模型助手

01. 背景 AI业务快速增长下传统关系型数据库无法满足需求。 2024年恰逢OPPO品牌20周年&#xff0c;OPPO也宣布正式进入AI手机的时代。超千万用户开始通过例如通话摘要、新小布助手、小布照相馆等搭载在OPPO手机上的应用体验AI能力。 与传统的应用不同的是&#xff0c;在AI驱动的…

002-日志增强版

日志增强版 一、需求二、引入依赖三、配置日志处理切面四、配置RequestWrapper五、效果展示 一、需求 需要打印请求参数和返回参数 二、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop<…

Spire.PDF for .NET【页面设置】演示:旋放大 PDF 边距而不改变页面大小

PDF 页边距是正文内容和页面边缘之间的空白。与 Word 不同&#xff0c;PDF 文档中的页边距不易修改&#xff0c;因为 Adobe 不提供任何功能供用户自由操作页边距。但是&#xff0c;您可以更改页面缩放比例&#xff08;放大/压缩内容&#xff09;或裁剪页面以获得合适的页边距。…

服务器数据恢复—EVA存储硬盘磁头和盘片损坏离线的数据恢复案例

服务器存储数据恢复环境&故障&#xff1a; 一台HP EVA存储中有23块硬盘&#xff0c;挂接到一台windows server操作系统的服务器。 EVA存储上有三个硬盘指示灯亮黄灯&#xff0c;此刻存储还能正常使用。管理员在更换硬盘的过程中&#xff0c;又出现一块硬盘对应的指示灯亮黄…

探索仓颉编程语言:官网上线,在线体验与版本下载全面启航

文章目录 每日一句正能量前言什么是仓颉编程语言仓颉编程语言的来历如何使用仓颉编程语言在线版本版本下载后记 每日一句正能量 当你被孤独感驱使着去寻找远离孤独的方法时&#xff0c;会处于一种非常可怕的状态。因为无法和自己相处的人也很难和别人相处&#xff0c;无法和别人…

idea 自动导包,并且禁止自动导 *(java.io.*)

自动导包配置 进入 idea 设置&#xff0c;可以按下图所示寻找位置&#xff0c;也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly&#xff1a;自动帮我们优化导入的包Optimize imports on the fly&#xff1a;自动去掉一些没有用到的包 禁止导…

【时时三省】(C语言基础)结构体的自引用

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 结构体的自引用 在结构中包含一个类型为该结构体本身的成员是否可以呢&#xff1f; 在struct B里面包含了一个结构体struct A叫sa 结构体类型里面是可以包含另一个结构体类型变量作为它的成…

GoReplay开源工具使用教程

目录 一、GoReplay环境搭建 1、Mac、Linux安装GoReplay环境 二、GoReplay录制与重播 1、搭建练习接口 2、录制命令 3、重播命令 三、GoReplay单个命令 1、常用命令 2、其他命令 3、命令示例 4、性能测试 5、正则表达式 四、gorepaly组合命令 1、组合命令实例 2、…

宏海科技募资额有所缩减,最大销售和采购都重度依赖美的集团

《港湾商业观察》施子夫 11月29日&#xff0c;北交所上市审核委员会将召开2024年第24次上市委审议会议&#xff0c;届时将审议武汉宏海科技股份有限公司&#xff08;以下简称&#xff0c;宏海科技&#xff09;的首发上会事项。 在上会之前&#xff0c;宏海科技共收到北交所下…