elasticsearch 中term与match区别

elasticsearch 中term与match区别

term是精确查询

match是模糊查询

term查询

term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个。比如说我们要找标题为北京奥运的所有文档

$curl -XGET http://localhost:9200/index/doc/_search?pretty -d
'{"query":{"term":{"title":"北京奥运"}}
}'

将会得到如下结果

{"took": 1,"timed_out": false,"_shards": {"total": 5,"successful": 5,"failed": 0},"hits": {"total": 1,"max_score": 0.92055845,"hits": [{"_index": "index","_type": "doc","_id": "3","_score": 0.92055845,"_source": {"content": "同一个世界同一个梦想","title": "北京奥运","tags": ["和平"]}}]}
}

match类查询

match查询会先对搜索词进行分词,分词完毕后再逐个对分词结果进行匹配,因此相比于term的精确搜索,match是分词匹配搜索,match搜索还有两个相似功能的变种,一个是match_phrase,一个是multi_match,接下来详细介绍一下

match

前面提到match搜索会先对搜索词进行分词,对于最基本的match搜索来说,只要搜索词的分词集合中的一个或多个存在于文档中即可,例如,当我们搜索中国杭州,搜索词会先分词为中国杭州,只要文档中包含搜索杭州任意一个词,都会被搜索到

$curl -XGET http://localhost:9200/index/doc/_search?pretty -d
'{"query": {"match": {"content": "中国杭州"}}
}'

文档3正文中有杭州,文档2中有中国,因此搜索结果有两个,文档3中杭州出现两次,所以排在前面,结果如下:

{"took" : 1,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"failed" : 0},"hits" : {"total" : 2,"max_score" : 0.99999994,"hits" : [ {"_index" : "index","_type" : "doc","_id" : "4","_score" : 0.99999994,"_source" : {"content" : "杭州是一个美丽的城市,欢迎来到杭州","title" : "宣传","tags" : [ "旅游", "城市" ]}}, {"_index" : "index","_type" : "doc","_id" : "2","_score" : 0.8838835,"_source" : {"content" : "中国是世界上人口最多的国家","title" : "中国","tags" : [ "中国", "人口" ]}} ]}
}

elasticsearch match模糊查询相关推荐

  1. es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  2. Java分词工具模糊查询_Java如何使用elasticsearch进行模糊查询

    这篇文章主要介绍了java如何使用elasticsearch进行模糊查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用环境上篇文章本人已书写过 ...

  3. es不建议模糊搜索_elasticsearch match模糊查询

    elasticsearch 中term与match区别 elasticsearch 中term与match区别 term是精确查询 match是模糊查询 term查询 term是代表完全匹配,也就是精 ...

  4. 【全文搜索引擎】Elasticsearch之模糊查询

    wildcard查询 通配符查询允许我们在查询值中使用*和?等通配符.此外,通配符查询跟词条查询在内容方面非常类似.可以发送一下查询,来匹配所有包含cr?me词条的文档,这里?表示任意字符: {&qu ...

  5. SpringBoot+ElasticSearch 实现模糊查询,批量CRUD,排序,分页,高亮

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  6. ElasticSearch fuzzy模糊查询(英文检索)

    fuzzy实现模糊查询 value:查询的关键字 boost:查询的权值,默认值是1.0 min_similarity:设置匹配的最小相似度,默认值为0.5, 对于字符串,取值为0-1(包括0和1); ...

  7. ElasticSearch英文基本查询

    本章内容概述 1.基本查询(QUERY查询) 2.结构化查询 1.基本查询(QUERY查询) 1.1 数据准备 先插入数据,以备测试使用 ### 创建索引 PUT /lib3PUT /lib3/use ...

  8. es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...

    1.条件match query查询 //条件查询match query @Testpublic void test10() throwsUnknownHostException {//1.指定es集群 ...

  9. Elasticsearch在thinkphp5中的使用增删改查(模糊查询、批量查询)

    Elasticsearch在thinkphp5中的使用(模糊查询) 需要安装elasticsearch.elastic-header-master.kibana.analysis-ik四个包,如下图所 ...

最新文章

  1. 目前的Android恶意软件分类
  2. java 数据库操作代码_JAVA:对数据库的一系列操作代码
  3. PHP获取当前页面的网址
  4. 使用反射处理Java批注
  5. 爬虫实战学习笔记_4 网络请求urllib3模块:发送GET/POST请求实例+上传文件+IP代理+json+二进制+超时
  6. No module named 'ConfigParser'
  7. opencv-api drawKeypoints drawMatches
  8. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(自动建表)
  9. TLS1.1升级到TLS1.2(微信小程序要求TLS1.2以上)
  10. Shortest Prefixes
  11. Hive依据key获取value
  12. 微信小程序---配置微信商户平台进行微信支付操作指南以及踩坑记录
  13. 三维马氏距离_马氏距离2
  14. 《机器学习实战》 自制勘误表 中文版第一版2015年9月第11次印刷版
  15. 基于R语言进行栅格数据统计及Raster包简介
  16. 分享-IE游览器升级工具
  17. 坑爹的MediaPlayer.isPlaying()
  18. jackd android 2018,2018年人教版七年级上册英语期末试卷.pdf
  19. 【附源码】Python计算机毕业设计时事新闻管理系统
  20. AWS VPC CNI vs Calico CNI

热门文章

  1. android开发--详解ListView,动态添加,删除Adapter中的数据项
  2. 模块加载过程代码分析1
  3. 一个类的实例是另一个类的属性python_Python中的类属性和实例属性引发的一个坑...
  4. python网上授课_python完整课程
  5. 还记得当年陪你度过整个夏日的红白机吗?
  6. 宜家如何利用低代码平台提升员工效率,提高数据价值
  7. 有了这个IDEA插件,从此不用再开Postman了
  8. 阿里云有史以来最大的一次优惠,爆款限时抢,至少省10000+
  9. Spring Cloud Alibaba 发布第一个正式版本,顺利完成孵化!
  10. 分享一套主流框架源码资料,征服阿里 P7 面试必备!