Standard Analyzer(标准分析器)

standard(标准)分析器是默认分析器,如果没有指定分析器,则使用该分析器。它提供基于语法的标记(基于Unicode文本分段算法,如Unicode标准附件29中所述),并且用于大多数语言。

定义

它包括:

分词器

  • 标准分词器

词语过滤器

  • 标准词语过滤器

  • 小写词语过滤器

  • 停止词过滤器(默认情况下禁用)
输出示例
POST _analyze
{
  "analyzer": "standard",
  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

上述的句子将产生以下的词语:

[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]
配置

standard(标准)分析器接受以下的参数:

| max_token_length | 最大词语长度。如果看到超过此长度的词语,则以max_token_length分割。默认为255。 | | stopwords | 预定义的停止词列表,如_english或包含停止词列表的数组。默认为_none_。 | | stopwords_path | 包含停止词的文件路径。 |

有关停止词配置的更多信息,请参阅Stop Token Filter(停止词过滤器)。

配置示例

在这个示例中,我们将standard(标准)分析器的max_token_length值配置为5(用于演示目的),并使用预定义的英文停止词列表:

PUT my_index

{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_english_analyzer": {
          "type": "standard",
          "max_token_length": 5,
          "stopwords": "_english_"
        }
      }
    }
  }
}

POST my_index/_analyze
{
  "analyzer": "my_english_analyzer",
  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

以上示例产生以下词语:

[ 2, quick, brown, foxes, jumpe, d, over, lazy, dog's, bone ]