教程 elasticsearch tutorial

Match / Term 查询

Elasticsearch 提供多种查询类型,Match 和 Term 查询是最基础也是最常用的两种。理解它们的区别,有助于设计准确高效的搜索请求。

1. Match 查询

  • 用于全文检索,对字段内容进行分词后匹配
  • 支持模糊匹配、分析器处理
  • 适合搜索自然语言文本

示例

json
GET /my-index/_search
{
  "query": {
    "match": {
      "content": "快速学习 Elasticsearch"
    }
  }
}

`

2. Term 查询

  • 精确匹配查询,不做分词处理
  • 用于查找确切值,如关键词、ID、状态等
  • 适合过滤条件或精确查找

示例

json
GET /my-index/_search
{
  "query": {
    "term": {
      "status": "published"
    }
  }
}

3. 主要区别总结

特性 Match 查询 Term 查询
是否分词 是 否
适用字段类型 文本(text) 关键字(keyword)、数字
用途 全文搜索,模糊匹配 精确值匹配

合理选择 Match 或 Term 查询,能有效提升搜索的准确性和性能表现。