【Elasticsearch】搜索小记之 match VS match_phrase

  最近稍微研究了一下ElasticSearch(下文简称ES),所谓可扩展的开源弹性搜索解决方案,跟同事笑称,如果它作为SQL SERVER的话,我的了解还在基本的select语句上,当然学习它也是一个积累知识的过程,闲言少叙,书归正传,今天简单将里面中的基础的两个查询总结一下,有不对的地方欢迎各位指出。

  刚刚接触ES的时候,发现他的搜索确实很快,不像SQL Server 的like查询,他还能通过解析用户搜索的词汇,通过相关系数(score)都给你查出来,当然SQLServer 也有全文搜索,这个暂且不提。先举个例子:我想搜索 包含“美国哈佛大学”的title。match语句如下:

复制代码
 1 {
 2   "fields": [
 3     "title"
 4   ],
 5   "query": {
 6     "match": {
 7       "title": "美国哈佛大学"
 8     }
 9   },
10   "size": 100
11 }
复制代码

返回结果:

很明显,“美国哈佛大学”六个字,它做了分词:["美国","哈佛","大学"](当然可能更详细),然后得到的结果是2964条,也就是说,包含这几个关键字的有这么多,那么我在换上 match_phrase搜索,语句如下:

复制代码
 1 {
 2   "fields": [
 3     "title"
 4   ],
 5   "query": {
 6     "match_phrase": {
 7       "title": {
 8         "query": "美国哈佛大学",
 9         "slop": 0
10       }
11     }
12   },
13   "size": 100
14 }
复制代码

结果:

看就两条数据。所以,想用什么搜索方式还是看需求吧。

 

posted @   丶Pz  阅读(2675)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示
+

"大爷常来玩呀"

微信支付