match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找的时候,多用match,而精确查找时可以使用term。

举个例子说明一下:

{  "match": { "title": "my cat"}
}
{  "bool": {  "should": [  { "term": { "title": "my" }},  { "term": { "title": "cat"   }}  ]  }
} 

match 会将关键词进行分词分成“my”和“cat”,查找时包含其中任一均可被匹配到。

term结合bool使用,不进行分词,但是有2个关键词,并且使用“或”匹配,也就是会匹配关键字一“my”或关键字“cat”,效果和上面的match是相同的。如果要想精确的匹配“my cat”而不匹配“my lovely cat”,则可以如下方式匹配:

{  "bool": {  "should": [  { "term": { "title": "my cat" }}  ]  }
} 

是不是还挺简单的,有一点需要注意一下,term结合bool使用时:should是或,must是与,must_not是非(还有一种filter,不说了这个)

{  "match": {  "title": {  "query":    "my cat",  "operator": "and"  }  }
}  
{  "bool": {  "must": [  { "term": { "title": "my" }},  { "term": { "title": "cat"   }}  ]  }
} 

上面这两个查询就是等效的,match的与对应bool的must,也就是说my和cat需要都出现才算匹配上。

ES中match和term差别对比相关推荐

  1. es中match和term的区别

    GET my_test/children/_search {"query":{"match":{"other": "重点内容&qu ...

  2. ES中term、terms、match的区别

    ES中term.terms.match的区别 term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword.numeric.date等明确值的 term:查 ...

  3. es中 term多字段查询

    es中 must 多字段查询可以如下操作 {"query": {"bool": {"must": [{"term":{& ...

  4. Elasticsearch中 match、match_phrase、query_string和term的区别

    (一)text字段和keyword字段的区别 以下给出一个例子: 首先建立一个索引和类型,引入一个keywork的字段: PUT my_index {"mappings": {&q ...

  5. ES中关联关系处理方式汇总

    前言 本节主要介绍在ES中关联关系的处理方式. 一.方案汇总 根据<Elasticsearch权威指南>以及官网中的介绍,ES针对关联关系的处理主要有如下方式: 应用层关联 非规划化数据 ...

  6. elasticsearch 查询(match和term)

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

  7. ELK系列(四)、Logstash读取nginx日志写入ES中

    前面讲了ELK的部署以及Logstash的插件的安装方式,本篇就介绍一下如何使用Logstash读取nginx的日志,并写入ES中,通过Kibana分析. ELK系列(一).安装ElasticSear ...

  8. es中的dsl练习题-----简单的dsl语句

    slirp4netns >= 0.4 fuse-overlayfs >= 0.7 这是在本地安装elasticsearch数据然后通过kibana来操作数据的dsl来实现的 其中的查询ap ...

  9. ES中的Query与Filter的区别

    QElasticsearch支持很多查询方式,其中一种就是DSL,它是把请求写在JSON里面,然后进行相关的查询. Query DSL 与 Filter DSL DSL查询语言中存在两种:查询DSL( ...

最新文章

  1. Java JDK 11:现在可以使用所有新功能
  2. python网上有免费资源吗_【转载】学习Python无从下手?最好的免费资源想要拿走...
  3. 底层原理_Spring框架底层原理IoC
  4. 服务器端利器--双缓冲队列
  5. zipkin server 数据持久化问题
  6. 一款监控网络状态的好工具- Smokeping
  7. wex5部署教程到数据库
  8. LDAPimplementation
  9. VMware下Ubuntu图形界面切换到命令行终端模式
  10. dedecms 判断是否有值然后显示
  11. c#winform panel空间拖动窗体 最小化 关闭 按钮 右下角弹窗
  12. MyBatis 简单手写的 实现
  13. xcode 真机调试无法选择对应设备 “ineligible devices“
  14. 【visual studio】visual studio 2022 无法 复制黏贴
  15. sklearn基础(一)文本特征提取函数CountVectorizer()和TfidfVectorizer()
  16. 用户行为分析大数据平台之(一)项目介绍
  17. ofo牵手芝麻信用,骑小黄车可以不用押金了
  18. 定义一个学生类Student,包含三个属性姓名、年龄、性别, 创建三个学生对象存入ArrayList集合中。 A:使用迭代器遍历集合。 B:求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。
  19. Android 多种简单的弹出框样式设置
  20. 软件工程-大学体育馆管理系统用例图

热门文章

  1. 计算机毕业设计PHP行程规划app(源码+程序+VUE+lw+部署)
  2. video标签播放MP4只有声音没有视频
  3. java中上传图片的原理_js实现图片上传预览原理分析
  4. 群签名与环签名的介绍
  5. Redis 最全面试题(2021)
  6. 小米邮件遭曝光,红米Note8 Pro售价泄露,网友:这价格也太香了
  7. html5 video js控制摄像头的焦距,video.js自定义控制按钮
  8. easyui combobox设置默认选项
  9. chanson:Ta fete 翻译
  10. springboot使用JWT,并自动获取用户信息