https://blog.csdn.net/weixin_40341116/article/details/80745565

阅读本文前要先知道 分词、倒排索引 的概念,并需要知道 text, keyword 在 ES 5.x 以上的差别 (ES基本类型与映射)

term 和 match牵扯到了分词器、mapping、倒排索引等

term 是直接把field拿去查询倒排索引中确切的term

match 会先对field进行分词操作,然后再去倒排索引中查询

具体实例

假设有一个字段nickname,存放的类型是text,因此当新增一笔文档时,内容会被分词器分词,然后才储存进倒排索引

假设插入了一笔文档,其中"nickname": "1 hello",分词过后变为1、hello,因此倒排索引中储存的是两笔索引1和hello,而不是一笔索引1 hello

使用match做查询

"match": "1-hello" : 成功,因为match把1-hello分词成 1、hello,而1和hello都存在在倒排索引中,所以不只能够查到,_score还很高

"match": "1" : 成功,1被分词过后还是1,而1存在在倒排索引中

"match": "hello how r u" : 成功,match把hello how r u分词成hello、how、r、u,而hello存在在倒排索引中

使用term做查询

"term": "2222-hello : 失败,倒排索引只有1、hello,并没有2222-hello

"term": "hello" : 成功,因为倒排索引中有hello

"term": "1 hello" : 失败,虽然1 hello和我们当时插入的数据一模一样,但是因为倒排索引在建立索引时把原始的数据分词了才储存进索引,裡面存的是1和hello,并没有存放1 hello,因此查询失败

ElasticSearch - term 和 match 的差别相关推荐

  1. ElasticSearch term和match查询机制解析和隐藏的查询问题

    2. 关于默认分析使用term查询的问题 之前说过es的默认分析器会讲中文拆分成一个个的单个汉子,搜索条件"内科"会被分析为"内"和"科", ...

  2. elasticsearch 查询(match和term)

    elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...

  3. elasticsearch中term与match

    分词器.字符串类型.倒排索引 在说term和match之前,需要先了解一下这三个概念 分词器 es默认的分词器是standard analyzer,该分词器的特点是:将所有英文字符串的大写字母转换成小 ...

  4. 【Elasticsearch教程18】Mapping字段类型之text 以及term、match和analyzer

    Elasticsearch Mapping字段类型之text 以及term.match和analyzer 一.text场景 二.`term`查询 三.`match`查询 1. `亚瑟王`如何存储? 2 ...

  5. Elasticsearch教程(28) text和keyword区别 term和match区别 ik中文分词器使用

    text和keyword区别 term和match区别 ik中文分词器使用 一.前言 二.之前相关的博客 三.造点测试数据 1. 创建一个index 2. 插入测试数据 四.做一份试卷 第1题:tit ...

  6. 关于es查询dsl的filter与must,term与match的区别

    [1]创建es7  索引 put localhost:9200/pdi_cust , 注意 PUB_CUST_LABEL 字段分词了. es7 不支持type ,所以 无需指定type. { &quo ...

  7. Elasticsearch term vector

    Elasticsearch term vector 一. 概念 二. term vector数据的出现时机 三. 数据探查 3.1 最基本的数据探查 3.2 探查指定term的term vector ...

  8. es笔记三之term,match,match_phrase 等查询方法介绍

    首先介绍一下在 es 里有两种存储字符串的字段类型,一个是 keyword,一个是 text. keyword 在存储数据的时候是作为一个整体存储的,不会对其进行分词处理 text 存储数据的时候会对 ...

  9. elasticsearch term match multi_match区别

    转自:http://www.cnblogs.com/yjf512/p/4897294.html match 最简单的一个match例子: 查询和"我的宝马多少马力"这个查询语句匹配 ...

  10. elasticsearch7常见查询(term、match、bool、filter)

    一.精准查询term term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇 1.term单值 字段只有一个值时候,用term关键词查询 查询biz_id值为190919002390 ...

最新文章

  1. 第十、十一周项目三-警察和厨师(1)
  2. Memcache 安装与使用
  3. SQL 语句快速参考
  4. 使用Go语言从零编写PoS区块链
  5. bdphp在线订购是真的么_《瑞评》330i会是宝马粉最后的希望么?
  6. 搭建MyBatis操作数据库
  7. mAP与IOU的简单介绍
  8. 渗透中Poc、Exp、Payload、Rce与Shellcode的区别
  9. 【本周六,上海】2021年的首场openGauss Meetup,有干货有礼品,只等你来!
  10. Tip3 百度网盘PC版去除广告和游戏运营位教程(百度网盘破解教程)
  11. [Python]更改图片底色
  12. 【Paper Reading】Improving Availability of Vertical Federated Learning Relaxing Inference on Non-overl
  13. 用python画一个机器猫歌词_用Python语言模型和LSTM做一个Drake饶舌歌词生成器
  14. python指纹识别_Python实现指纹识别你见过没?
  15. 理解gamma校正[译]
  16. 相机快门_向我的智能手机添加远程相机快门的最简单方法是什么?
  17. 2020.10.24--AI--波纹便签、字体设计、徽章制作
  18. 465端口发邮件php,在centos上打开端口465 for smtp的问题
  19. matlab做二元garch m,多元garch模型的matlab程序如何运行?能否举例说明下啊,希望高手指点...
  20. 一步一步学Spring Boot(三)

热门文章

  1. Mac基础知识:在mac上怎么使用程序坞
  2. 如何显示或隐藏Mac电脑右上角的声音图标
  3. CentOS7 安装部署k8s
  4. 专业好用的数据恢复软件推荐
  5. EasyRecovery软件帮你快速恢复图片数据
  6. 狗汪汪玩转无线电 -- GPS Hacking (上)
  7. 【BZOJ】1270 [BeijingWc2008]雷涛的小猫
  8. python发送电子邮件
  9. PHP通过传递对象参数调用asp.net Webservice 服务
  10. ios7中的UILabel自适决定大小