Elasticsearch match和term查询的区别
区别
match
全文搜索, 通常用于对text类型字段的查询,会对进行查询的文本先进行分词操作,如下图
term
精确查询,通常用于对keyword和有精确值的字段进行查询,不会对进行查询的文本进行分词操作,精确匹配,如下图
实例说明
- 新建索引
- 添加数据
- 测试分词效果
- 测试match查询
- 测试term查询
新建索引
添加一个text类型的字段,使用ik_max_word分析器
PUT /testquery
{"mappings": {"books":{"properties": { "bookName":{"type":"text","analyzer": "ik_max_word"}}}}
}
添加数据
POST /testquery/books
{"bookName":"Java编程思想"
}
测试分词效果
GET /_analyze
{"analyzer": "ik_max_word","text": ["Java编程思想"]
}
结果
{"tokens": [{"token": "java","start_offset": 0,"end_offset": 4,"type": "ENGLISH","position": 0},{"token": "编程","start_offset": 4,"end_offset": 6,"type": "CN_WORD","position": 1},{"token": "思想","start_offset": 6,"end_offset": 8,"type": "CN_WORD","position": 2}]
}
所以,Java编程思想 实际分词效果如下
测试match查询,进行分词操作
查询 Java
先看看 Java 的分词效果
GET /_analyze
{"analyzer": "ik_max_word","text": ["Java"]
}
{"tokens": [{"token": "java","start_offset": 0,"end_offset": 4,"type": "ENGLISH","position": 0}]
}
存在, 所以是可以查询到的
POST /testquery/books/_search
{"query": {"match": {"bookName": "Java"}}
}
{"took": 60,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 1,"max_score": 0.2876821,"hits": [{"_index": "testquery","_type": "books","_id": "vYOz-msB_TzP5bFY5JlL","_score": 0.2876821,"_source": {"bookName": "Java编程思想"}}]}
}
查询 Java思想
查看分词效果
GET /_analyze
{"analyzer": "ik_max_word","text": ["Java思想"]
}
{"tokens": [{"token": "java","start_offset": 0,"end_offset": 4,"type": "ENGLISH","position": 0},{"token": "思想","start_offset": 4,"end_offset": 6,"type": "CN_WORD","position": 1}]
}
存在, 所以也是可以查询到的
POST /testquery/books/_search
{"query": {"match": {"bookName": "Java思想"}}
}
{"took": 2,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 1,"max_score": 0.5753642,"hits": [{"_index": "testquery","_type": "books","_id": "vYOz-msB_TzP5bFY5JlL","_score": 0.5753642,"_source": {"bookName": "Java编程思想"}}]}
}
测试term查询, 不进行分词操作
查询 java
查看上面的分词结果, java是在分词结果中的,所以可以查询到
POST /testquery/books/_search
{"query": {"term": {"bookName": "java"}}
}
{"took": 7,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 1,"max_score": 0.2876821,"hits": [{"_index": "testquery","_type": "books","_id": "vYOz-msB_TzP5bFY5JlL","_score": 0.2876821,"_source": {"bookName": "Java编程思想"}}]}
}
查询 Java
Java不在上面的分词结果中, 结果当然就查询不到
POST /testquery/books/_search
{"query": {"term": {"bookName": "Java"}}
}
{"took": 0,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 0,"max_score": null,"hits": []}
}
Elasticsearch match和term查询的区别相关推荐
- Elasticsearch中的Term查询和全文查询
Elasticsearch中的Term查询和全文查询 前言 Term 查询 exists 查询 fuzzy 查询 ids 查询 prefix 查询 range 查询 regexp 查询 term 查询 ...
- 【Elasticsearch】将 term查询的 integer 字段改成 keyword之后, must 再改成 filter,就造成query_cache剧降
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 请问一下,为什么 elasticsearch 不生成缓存?常见的原因有哪些 ...
- 【Elasticsearch教程3】查询文档 term terms terms_set
版本约定 本系列博客ES版本如下: Elasticsearch 7.17.X Spring Data Elasticsearch 4.4.X Elasticsearch下载地址 Spring Data ...
- Elasticsearch教程(28) text和keyword区别 term和match区别 ik中文分词器使用
text和keyword区别 term和match区别 ik中文分词器使用 一.前言 二.之前相关的博客 三.造点测试数据 1. 创建一个index 2. 插入测试数据 四.做一份试卷 第1题:tit ...
- elasticsearch 查询(match和term)
elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...
- elasticsearch match模糊查询
elasticsearch 中term与match区别 elasticsearch 中term与match区别 term是精确查询 match是模糊查询 term查询 term是代表完全匹配,也就是精 ...
- Elasticsearch实战(五)---高级搜索 Match/Match_phrase/Term/Must/should 组合使用
Elasticsearch实战-Match/Match_phrase/term/filter 及Must should 组合并列使用 文章目录 Elasticsearch实战-Match/Match_ ...
- 初识ElasticSearch(2) -文档查询之match查询 | 分词器
1. 分词器: 2. match查询: 2.1. 数据准备 - 创建带分词器的索引映射 2.2. 数据准备 - 添加文档 2.3. 数据准备 - 查看文本分词 2.4. 查询 - 映射有分词器的字段查 ...
- 为什么 elasticsearch 要避免使用term查询text类型的字段
文章目录 term 查询 参数 value boost 避免使用term查询text类型的字段 1.创建一个含有text类型字段full_text 2.索引一个文档 3.在full_text字段使用t ...
最新文章
- centos 部署spring boot应用
- php curl 采集文件,curl获取远程文件内容
- 16999元!华为Mate X 5G折叠屏手机正式发布:不愧是限量款
- python代码错误有哪些_在编写python代码时,小白最容易犯的十几个错误 !
- Unity3D之UGUI基础9:ScrollRect卷动区域
- 掌握好数据分析,99%的企业都不会拒绝你
- 申万一级行业日指数_2017年申万一级行业分类表
- db9针232接口波特率标准_RS-232串口使用的DB9螺钉,螺纹规格是什么?
- 传奇gom引擎架设教程
- Hive处理数据基本操作流程
- office for Mac 2016/2019 百度云分享
- sqlite3数据库损坏修复方法(windows下)
- MLE的数值确定:Newton-Raphson迭代法、得分法
- 记录Access deined: authorize failure的坑
- xp计算机远程桌面设置密码,远程桌面连接设置,详细教您xp怎么设置远程桌面连接...
- 社交APP经典死法18种,听野路子产品菜狗怎么说
- 【C语言】实现双人控制的战斗小游戏
- 淘宝天猫京东拼多多抖音苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)
- 【深度好文】强烈推荐:傅盛认知三部曲!
- 计算机网络隧道工程,隧道工程
热门文章
- 爬虫下载壁纸,并设置壁纸自动切换
- C# SqlTransaction 多个方法采用同一个事务,保证操作统一性,数据一致性
- 【GDAL】矢量栅格化函数-gdal_rasterize
- Html Select 使用selected属性设置默认选择项
- apex服务器不稳定,APEX英雄提高帧数稳定144修改方法
- CEO之许可证---------------经营性互联网,自营和ICP的关系.
- Windows环境部署PbootCMS企业网站管理系统
- js运用return返回值进行求银行卡余额
- 水果(数据结构与算法)(python)
- nvidia实时刷新