ES中type和keyword两个数据类型的区别

news2025/2/26 19:59:52

前言

这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱

参考文章:

  • https://segmentfault.com/q/1010000017312707

  • ES数据类型:type与keyword:https://blog.csdn.net/ywb201314/article/details/112667516

了解

  1. 数据类型
    • 简单的类型: text、keyword、date、long、double、boolean和ip
    • 复杂类型有:object和nested
    • 较特殊的类型:geo_point,geo_shape,和completion
  2. 当你没有以Explicit mapping 的形式为你的索引字段预先指定mapping的话,ES就会使用Dynamic Mapping,通过推断你传入的文档中字段的值对字段进行动态映射

比如你直接在文档中直接传入字段"name":"小陈",那么es就会动态映射如下mapping

image-20220330175810765

text和keyword的对比

ES5.0及以后的版本取消了string类型,将原先的string类型拆分为textkeyword两种类型。它们的区别在于text会对字段进行分词处理而keyword则不会。前者会对查询内容做分词处理之后再匹配,而后者则是直接对查询结果做精确匹配。

  1. 在Elasticsearch中,正常添加数据,ES会自动识别所添加数据的类型,并为它分配类型,并为每个特殊类型分别建索引,以用来进行之后的搜索,而作为全文搜索引擎,ES将String域的字段可以分为准确数据类型,和全文文本类型
    • 准确数据类型: keyword,直接被存储为了二进制,检索时我们直接匹配,不匹配就返回false
    • 全文文本类型: text,这个的检索不是直接给出是否匹配,而是检索出相似度,并按照相似度由高到低返回结果
  2. 也就是说text是将字段拆分,然后找到最匹配拿哪项(无法全匹配),keyword是全匹配才可以
  3. ES的term query做的是精确匹配而不是分词查询,因此对text类型的字段做term查询将是查不到结果的(除非字段本身经过分词器处理后不变,未被转换或分词)。此时,必须使用foobar.keyword来对foobar字段以keyword类型进行精确匹配。

作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。

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

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

相关文章

COMPUTATIONAL BIOLOGYAND BIOIINFORMATICS投稿经验分享

IEEE/ACM Transactions on Computational Biology and Bioinformatics 关于latex,用模板选择:IEEE模板选择器,进行选择就行。 注意页数!超了加钱! 1)注册登录,进入之后开始投稿。(这里也可以看到页数限制信息)按顺序添加标题和摘要。 2) 先上上传pdf文件,然后上传其…

荧光灯和led灯哪个对眼睛好?分享专业的护眼台灯

发现有很多家庭都忽略了孩子学习时光线的的重要性,经常是开着家里的顶灯给孩子写作业,但其实如果光线不适合或者不够充足,对孩子眼睛的危害是很大的。也有些家长会选择给孩子挑选台灯,不过并不知道哪种好,例如最近我看…

芯科蓝牙BG27开发笔记4-SSV5 IDE的使用

1. 如何转移工作区的项目文件到新的文件夹,并且可以继续使用ssv5编辑、编译? 从默认的工作区将目标工程整体拷贝出来 目标文件夹: 进入ssv5点击导入工程,并选择目标文件夹 继续下一步,修改项目文件夹所在位置为其源码…

北京青年与中青年人群消费模型调研

本项目旨在研究北京青年(27岁及以下)人群与中青年人群(28岁以上)的消费模型的不同以及其背后可能的原因。在此之前,我们通过国家统计局北京的官方数据(如下图),确定了普通人大致在哪…

SpringBoot自动装配源码解析

Spirngboot为啥会比Spring使用更简单,少了那么多的Xml文件?一切都是基于SpringBoot的自动装配,当然SpringBoot的自动装配也是一个高频的面试题。 1.SpringApplication注解的源码分析 在分析源码时,都要问一问为什么SpringBoot能…

时间序列论文-聚类和异常检测(一)

这篇文章摘自,知乎:https://www.zhihu.com/question/29507442/answer/1212624591?utm_id0 写的很好,就记录一下。 两篇关于时间序列的论文 原文链接:两篇关于时间序列的论文 这次整理的就是清华大学裴丹教授所著的两篇与时间序…

Qt/C++音视频开发52-采集本地屏幕桌面的终极设计

一、前言 最开始设计的时候,只考虑了一个屏幕的情况,这种当然是最理想的情况,实际上双屏或者多屏的用户也不在少数,比如我这两个屏幕,屏幕1是1080P,屏幕2是2K分辨率,打印两个屏幕的区域是 QRec…

【EI会议征稿】2023年智能科学与计算机工程国际学术会议(ISCE 2023)

2023年智能科学与计算机工程国际学术会议(ISCE 2023) 2023 International Conference on Intelligence Scicence andComputer Engineering 2023年11月3-5日 中国-西双版纳 迄今为止,人工智能研究在一些特殊领域取得了一定的实质性进展。然…

单相并联下垂控原理

Part1 上述有个核心的piont是等效阻抗上的电压一般时很小的,这就导致逆变器输出电压矢量E和负载电压矢量UL之间的夹角很小 》基于上述的结论有助于我们去简化下垂控制的公式!!! Part2 上述得到负载电流,接着乘以负载…

计算机算法分析与设计(1)---求算法时间复杂性(手写例题)

文章目录 一、主定理求解二、递归树求解三、递归树求解含O的递归方程 一、主定理求解 二、递归树求解 三、递归树求解含O的递归方程

后端|一个分布式锁「失效」的案例分析

小猿最近很苦恼:明明加了分布式锁,为什么并发还是会出问题呢? 故事从接到需求开始说起。 接到需求 小猿前一阵接到一个小任务,里面有一个功能对应的场景如下: 封装一个对账户余额进行加减操作的方法;所属服…

shell指令,通过函数实现数组求和,通过函数获取用户uid和gid

一、实现一个对数组求和的函数&#xff0c;数组通过实参传递给函数 num0 read -p "请输入一组数据&#xff1a;" -a arr function add() {for ((i0; i<${#arr[*]}; i))do ((numarr[i]))donereturn $num } add ${arr[*]} echo $? 二、写一个函数&#xff0c;输出…

基于STM32智能环境系统

摘要 本系统采用stm32f407作为主控芯片&#xff0c;实现对环境的监测。并且通过和手机通信&#xff0c;获取当前的天气预报信息&#xff0c;结合当前测得的温湿度&#xff0c;可以为用户提供出行建议。利用stm32自带的RTC可以实现时间及闹钟功能。此外RTC还可以用于电子日历的…

《信息系统项目管理师教程(第4版)》第19章 配置与变更管理 知识点整理 xmind思维导图

已上传xmind思维导图&#xff0c;需要可下载 一、配置管理 基于配置库的变更控制(经常考) 二、变更管理

华为OD七日集训第4期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第4期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、数据结构第2天、滑动窗口第3天、贪心算法第4天、二分查找第5天、分治递归第6天、深度优先搜索dfs算法第7天、宽度优选算法&#xff0c;回溯法 六…

Mybatis-Plus 使用教程

01-Mybatis-Plus介绍 1.1 什么是mybatis-plus 官网: 简介 | MyBatis-Plus MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 1.2 官方愿景 1.3 特性 无侵入&…

伪谱法地震波场数值模拟

本文实现内容 各向同性介质波动方程伪谱法波场求解。各项异性介质(VTI、HTI)介质伪谱法波场求解。实现了衰减边界条件、拓展周期边界法。一种波场模拟的数据存储格式.sfd&#xff0c;提供二进制或文本输入输出。对波场模拟得到的存储数据进行.gif绘制、.png绘制、地震剖面绘制…

MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml

&#x1f600;前言 在进行MyBatis项目开发时&#xff0c;合理和高效的配置是确保项目顺利进行的基础。其中&#xff0c;mybatis-config.xml配置文件扮演着极其重要的角色&#xff0c;它包含了MyBatis运行时的各种必要配置信息&#xff0c;如数据库连接属性、事务管理器配置、别…

vector容器的详解与分析

简介&#xff1a; vector容器在高级语言中运用非常广泛&#xff0c;此容器可看成C语言中的动态数组结构用来存储一系列数据&#xff0c;它不仅支持C语言数组中的所有使用方式&#xff0c;还支持vector在C中还有更高级的使用。在C往后的高级运用时&#xff0c;通常把一些常用的操…

基于Java web的医院分诊管理系统文档

摘要 医院分诊管理系统是适应时代发展的需要&#xff0c;提高管理的效率而开发设计的&#xff0c;有效的减少了患者排队取号的时间&#xff0c;增加了医生的工作效率。通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享&#xff0c;及时为医院领导及各部…