ES查询-term VS match (转)
原文地址:https://blog.csdn.net/sxf_123456/article/details/78845437
elasticsearch 中term与match区别
term是精确查询
match是模糊查询
term查询
term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个。比如说我们要找标题为北京奥运的所有文档
$curl -XGET http://localhost:9200/index/doc/_search?pretty -d
'{
"query":{
"term":{
"title":"北京奥运"
}
}
}'
将会得到如下结果
{
"took": ,
"timed_out": false,
"_shards": {
"total": ,
"successful": ,
"failed":
},
"hits": {
"total": ,
"max_score": 0.92055845,
"hits": [
{
"_index": "index",
"_type": "doc",
"_id": "",
"_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" : ,
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"hits" : {
"total" : ,
"max_score" : 0.99999994,
"hits" : [ {
"_index" : "index",
"_type" : "doc",
"_id" : "",
"_score" : 0.99999994,
"_source" : {
"content" : "杭州是一个美丽的城市,欢迎来到杭州",
"title" : "宣传",
"tags" : [ "旅游", "城市" ]
}
}, {
"_index" : "index",
"_type" : "doc",
"_id" : "",
"_score" : 0.8838835,
"_source" : {
"content" : "中国是世界上人口最多的国家",
"title" : "中国",
"tags" : [ "中国", "人口" ]
}
} ]
}
}
ES查询-term VS match (转)的更多相关文章
- Elasticsearch学习系列之term和match查询
lasticsearch查询模式 一种是像传递URL参数一样去传递查询语句,被称为简单查询 GET /library/books/_search //查询index为library,type为book ...
- Elasticsearch学习系列之term和match查询实例
Elasticsearch查询模式 一种是像传递URL参数一样去传递查询语句,被称为简单查询 GET /library/books/_search //查询index为library,type为boo ...
- ES 入门记录之 match和term查询的区别
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两 ...
- ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...
- ES查询之刨根问底
昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有 ...
- es查询与聚合
""" 官方文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/aggregations.htm ...
- .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用 ...
- 记一次ES查询数据突然变为空的问题
基本环境 elasticsearch版本:6.3.1 客户端环境:kibana 6.3.4.Java8应用程序模块. 其中kibana主要用于数据查询诊断和查阅日志,Java8为主要的客户端,数据插入 ...
- ES查询语句
记录常用的es 查询 聚合 GET _cat / indices GET / p_ext_develop / _mapping / g GET / p_ext_develop / _analyze { ...
随机推荐
- [数据库]Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”
在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两 ...
- vs2015 iis express启动不了及安装DotNetCore.1.0.0-VS2015Tools.Preview2失败的解决方法
直接用管理员账户打开cmd,进入exe所在的文件夹在运行命令DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1不要加引号. PS:如果 ...
- 解决TensorFlow程序无限制占用GPU
今天遇到一个奇怪的现象,使用tensorflow-gpu的时候,出现内存超额~~如果我训练什么大型数据也就算了,关键我就写了一个y=W*x.......显示如下图所示: 程序如下: import te ...
- Android 开发 监听back并且执行home键功能
方法一: 在activity中重写onBackPressed()方法 ,注意此处一定要注释或者删除 super.onBackPressed();方法 @Override public void onB ...
- Oracle数据库row_number详解<转>
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW ...
- zabbix使用SNMPV3协议监控交换机
SNMPV3是简单网络管理协议的第三版,因为其安全性更高,现在的中低端交换机已普遍支持该协议,所以在生产环境中我们应该采用SNMPV3对交换机.路由器进行管理. 首先在交换机上要配置SNMPV3协议, ...
- 应用MySQL(开启远程登录权限)
参考“开启MySQL远程访问权限 允许远程连接”.
- VM下安装Windows 2008 R2服务器操作系统
打开虚拟机,双击双击新的虚拟机. 2 硬件兼容性选择workstation10.点击下一步. 3 选择我以后安装操作系统.点击继续 4 选择Microsoft windows,版本为windows s ...
- 微信小程序中把页面生成图片
这个问题我上网搜了一下,答案有多种,但是真正能用的没有几何.很多答案都是雷同,有的网友也不负责任,直接拿来照抄,自己也不跑一遍看看.哎,不说了,说多了全是泪.希望我们的技术达人在分享的时候,能够真实的 ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165304
下载镜像文件 在官网上下载好64位的镜像文件后,按照网上是教程进行安装,安装成功后截图如下 接下来是安装增强功能 按照教程安装增强功能后截图如下 设置共享文件 安装搜狗 在安装搜狗时遇到了安装失败的情 ...