Elasticsearch 中,term 查询和 match 查询的区别
文章目录
- 前言
- Elasticsearch 中,term 查询和 match 查询的区别
- 1. Term 查询
- 2. Match 查询
- 3. 总结
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
Elasticsearch 中,term 查询和 match 查询的区别
1. Term 查询
- 精确匹配:term 查询用于精确匹配字段的内容,不进行分词。它适用于关键词或精确值的匹配,比如数值、日期、布尔值或者不需要分词的字符串(如ID、邮政编码)。
- 不分词:如果查询的字段是文本类型,term 查询不会对查询字符串进行分词,而是直接匹配整个词。例如,查询"user":"John Doe"时,它只会匹配整个字段为“John Doe”的文档,而不会匹配包含“John”或“Doe”的文档。
GET /blog_new/_search
{
"query": {
"term": {
"title.keyword": "jstat命令查看jvm的GC信息1"
}
},
"size": 1000
}
2. Match 查询
- 全文检索:match 查询用于全文检索,它会对查询的文本进行分词,然后搜索这些分词的匹配。适用于自然语言文本的搜索。
- 分词匹配:对于文本类型的字段,match 查询会将输入的字符串分成多个词条,然后搜索与这些词条匹配的文档。例如,查询"user":"John Doe"时,它会将字符串分词为“John”和“Doe”,然后搜索包含这两个词的文档。
GET /blog_new/_search
{
"query": {
"match": {
"title": "jstat命令查看jvm的GC信息1"
}
},
"size": 1000
}
3. 总结
如果需要精确匹配某个值,应该使用term查询。
如果需要进行全文搜索或模糊匹配,应该使用match查询。