# Analysis

分析是将文本，如任何电子邮件的正文转换成附加到反向索引的tokens(标记)或terms(条件)的过程。分析由分析器执行，它可以是内置的分析器，也可以是每个索引定义的自定义分析器。**Index time analysis（索引时分析）**例如在索引时，内置的english analyzer(英文分析器)将会转换这个句子：

```
"The QUICK brown foxes jumped over the lazy dog!"
```

这些条件将被添加到反向索引中。

```
[ quick, brown, fox, jump, over, lazi, dog ]
```

**Specifying an index time analyzer（指定索引时分析器）**映射中的每个文本字段都能指定其自己的分析器。

```
PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "title": {
          "type":     "text",
          "analyzer": "standard"
        }
      }
    }
  }
}
```

在索引时，如果没有指定分析器，则会在索引设置中查找名为default的分析器。未找到则默认使用standard analyzer(标准分析器)。

**Search time analysis（搜索时分析）**

同样的分析过程应用于使用类似match query(匹配查询)的全文检索搜索时，将查询字符串的文本转换为相同形式的条件存储到反向索引中。

例如，用户可能搜索：

```
"a quick fox"
```

这将由类似英语分析器分析为以下的条件：

```
[ quick, fox ]
```

尽管在查询的字符串中使用明确的单词不会出现在原始的文本中(quick VS QUICK,fox VS foxes),因为我们已将相同的分析器应用于文本和查询字符串，查询字符串中的条件与反向索引中的文本完全匹配，这意味着这个查询匹配到我们的示例文档。

**Specifying a search time analyzer（指定搜索时分析器）**

通常在索引时和搜索时应该使用相同的分析器，而像match query(匹配查询)那样的全文检索将使用映射来查找用于每个字段的分析器。

通过查找用于搜索特定字段的分析器来决定：

*   在查询中指定分析器。

*   search_analyzer映射参数。
*   analyzer映射参数。
*   索引设置中的分析器称为default_search。
*   索引设置中的分析器称为default。
*   standard分析器。

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis.html)

译文链接 : [http://www.apache.wiki/display/Elasticsearch](http://www.apache.wiki/display/Elasticsearch)（修改该链接为 **ApacheCN** 对应的译文链接）

贡献者 : [陈益雷](/display/~chenyilei)，[曾少峰](/display/~zengshaofeng)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)

## Anatomy of an analyzer

## Testing analyzers

## Analyzers

## Normalizers