标准分析器
编辑标准分析器编辑
standard
分析器是默认分析器,如果未指定则使用它。它提供基于语法的分词(基于 Unicode 文本分段算法,如 Unicode 标准附件 #29 中所述),并且适用于大多数语言。
示例输出编辑
response = client.indices.analyze( body: { analyzer: 'standard', text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } ) puts response
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
分析器接受以下参数
|
最大词语长度。如果看到超过此长度的词语,则将其在 |
|
预定义的停用词列表,例如 |
|
包含停用词的文件的路径。 |
有关停用词配置的更多信息,请参见 停用词标记过滤器。
示例配置编辑
在此示例中,我们配置 standard
分析器,使其具有 max_token_length
为 5(为了演示目的),并使用预定义的英语停用词列表
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_english_analyzer: { type: 'standard', max_token_length: 5, stopwords: '_english_' } } } } } ) puts response response = client.indices.analyze( index: 'my-index-000001', body: { analyzer: 'my_english_analyzer', text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } ) puts response
PUT my-index-000001 { "settings": { "analysis": { "analyzer": { "my_english_analyzer": { "type": "standard", "max_token_length": 5, "stopwords": "_english_" } } } } } POST my-index-000001/_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 ]
定义编辑
standard
分析器包含
如果您需要对 standard
分析器进行超出配置参数的自定义,则需要将其重新创建为 custom
分析器并进行修改,通常是通过添加标记过滤器。这将重新创建内置的 standard
分析器,您可以将其用作起点
response = client.indices.create( index: 'standard_example', body: { settings: { analysis: { analyzer: { rebuilt_standard: { tokenizer: 'standard', filter: [ 'lowercase' ] } } } } } ) puts response