目录
- 一、关键特性
- 二、工作原理
- 三、使用场景
- 四、命令行示例
Elasticsearch 中的 term
查询是一种精确匹配查询,主要用于查找与指定精确值完全匹配的文档。
一、关键特性
-
精确匹配:
term
查询要求搜索的关键词与文档中对应字段的值完全一致,不涉及任何文本分析(如分词、大小写转换、停用词移除等)。这意味着,如果你搜索的是一个完整的词汇、短语或特定值(如整数、日期、布尔值等),Elasticsearch 将直接在索引的倒排表中查找是否存在与该值精确匹配的项。 -
非分词字段:
term
查询通常应用于未经过分词处理的字段类型,如keyword
、integer
、long
、date
、boolean
等。这些字段在索引时不会被分词器拆分成多个词项,而是作为整体存储在索引中。 -
区分大小写:对于区分大小写的字段(如
keyword
类型),term
查询同样区分大小写。例如,搜索Term
和term
将被视为不同的值。 -
效率较高:由于
term
查询直接在倒排索引中查找特定值,而不涉及复杂的文本分析和评分计算,因此其执行效率通常高于需要进行文本分析的查询类型,如match
、multi_match
等。
二、工作原理
在 Elasticsearch 中,每个文档在索引时都会被分解成多个词项,并为每个词项建立一个倒排索引。term
查询的工作流程如下:</