# Common Grams Token Filter(近义词词元过滤器)

原文链接 :[https://www.elastic.co/guide/en/elasticsearch/reference/5.4/analysis-common-grams-tokenfilter.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.4/analysis-common-grams-tokenfilter.html)

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10028048](http://www.apache.wiki/pages/viewpage.action?pageId=10028048)

贡献者 : [李亚运](/display/~liyayun)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)

## 简述

此过滤器，用于为经常出现的术语生成二进制码。 单项仍被索引。 当我们不想完全忽略常用术语时，它可以用作“ [停止令牌过滤器”](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-stop-tokenfilter.html)的替代方法。如"the quick brown is a fox",将被过滤成  "the", "the_quick", "quick", "brown", "brown_is", "is_a", "a_fox", "fox"。假设“the”，“is”和“a”是常用词。

当启用`query_mode`时，过滤器将删除常用单词和单个术语，后跟通用单词。 应在搜索分析器中启用此参数。如，"the quick brown is a fox" 将被过滤成 "the_quick", "quick", "brown_is", "is_a", "a_fox", "fox"。

## 参数

以下是常用设置：

| 设置 | 描述 |
| --- | --- |
| `common_words` | 要使用的常用词列表。 |
| `common_words_path` | 路径（相对于`config`位置，或绝对）到常用单词列表。 每个单词应该在自己的“行”（用换行符分隔）。 该文件必须是UTF-8编码。 |
| `ignore_case` | 如果为真，通用单词匹配将不区分大小写（默认为`false` ）。 |
| `query_mode` | 生成二进制，然后删除常用单词和单个术语，后跟一个通用单词（默认为`false` ）。 |

注意， `common_words`或`common_words_path`字段是必需的。

## 示例

如下所示：

```
index :
    analysis :
        analyzer :
            index_grams :
                tokenizer : whitespace
                filter : [common_grams]
            search_grams :
                tokenizer : whitespace
                filter : [common_grams_query]
        filter :
            common_grams :
                type : common_grams
                common_words: [a, an, the]
            common_grams_query :
                type : common_grams
                query_mode: true
                common_words: [a, an, the]
```