词干提取器令牌过滤器
编辑词干提取器令牌过滤器编辑
为多种语言提供算法词干提取,其中一些语言还有其他变体。有关支持语言的列表,请参阅language
参数。
如果未自定义,则过滤器将使用porter 词干提取算法 处理英语。
示例编辑
以下分析 API 请求使用stemmer
过滤器的默认 porter 词干提取算法将the foxes jumping quickly
提取为the fox jump quickli
response = client.indices.analyze( body: { tokenizer: 'standard', filter: [ 'stemmer' ], text: 'the foxes jumping quickly' } ) puts response
GET /_analyze { "tokenizer": "standard", "filter": [ "stemmer" ], "text": "the foxes jumping quickly" }
过滤器生成以下令牌
[ the, fox, jump, quickli ]
添加到分析器编辑
以下创建索引 API 请求使用stemmer
过滤器来配置新的自定义分析器。
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { tokenizer: 'whitespace', filter: [ 'stemmer' ] } } } } } ) puts response
PUT /my-index-000001 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "whitespace", "filter": [ "stemmer" ] } } } } }
可配置参数编辑
-
language
-
(可选,字符串) 用于提取令牌的依赖于语言的词干提取算法。如果同时指定此参数和
name
参数,则使用language
参数参数。language 的有效值
有效值按语言排序。默认为
english
。推荐的算法以粗体显示。- 阿拉伯语
-
arabic
- 亚美尼亚语
-
armenian
- 巴斯克语
-
basque
- 孟加拉语
-
bengali
- 巴西葡萄牙语
-
brazilian
- 保加利亚语
-
bulgarian
- 加泰罗尼亚语
-
catalan
- 捷克语
-
czech
- 丹麦语
-
danish
- 荷兰语
-
dutch
,dutch_kp
- 英语
-
english
,light_english
,lovins
,minimal_english
,porter2
,possessive_english
- 爱沙尼亚语
-
estonian
- 芬兰语
-
finnish
,light_finnish
- 法语
-
light_french
,french
,minimal_french
- 加利西亚语
-
galician
,minimal_galician
(仅复数步骤) - 德语
-
light_german
,german
,german2
,minimal_german
- 希腊语
-
greek
- 印地语
-
hindi
- 匈牙利语
-
hungarian
,light_hungarian
- 印度尼西亚语
-
indonesian
- 爱尔兰语
-
irish
- 意大利语
-
light_italian
,italian
- 库尔德语(索拉尼语)
-
sorani
- 拉脱维亚语
-
latvian
- 立陶宛语
-
lithuanian
- 挪威语(博克马尔语)
-
norwegian
,light_norwegian
,minimal_norwegian
- 挪威语(新挪威语)
-
light_nynorsk
,minimal_nynorsk
- 波斯语
-
persian
- 葡萄牙语
-
light_portuguese
,minimal_portuguese
,portuguese
,portuguese_rslp
- 罗马尼亚语
-
romanian
- 俄语
-
russian
,light_russian
- 塞尔维亚语
-
serbian
- 西班牙语
-
light_spanish
,spanish
spanish_plural
- 瑞典语
-
swedish
,light_swedish
- 土耳其语
-
turkish
-
name
- 是
language
参数的别名。如果同时指定此参数和language
参数,则使用language
参数参数。
自定义编辑
要自定义stemmer
过滤器,请复制它以创建新自定义令牌过滤器的基础。您可以使用其可配置参数修改过滤器。
例如,以下请求创建了一个自定义stemmer
过滤器,该过滤器使用light_german
算法提取单词
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { tokenizer: 'standard', filter: [ 'lowercase', 'my_stemmer' ] } }, filter: { my_stemmer: { type: 'stemmer', language: 'light_german' } } } } } ) puts response
PUT /my-index-000001 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "standard", "filter": [ "lowercase", "my_stemmer" ] } }, "filter": { "my_stemmer": { "type": "stemmer", "language": "light_german" } } } } }