KStem 词元过滤器
编辑KStem 词元过滤器
编辑提供基于 KStem 的英语词干提取。 kstem
过滤器结合了 算法词干提取 和内置的 词典。
kstem
过滤器的词干提取力度通常比其他英语词干提取过滤器(例如 porter_stem
过滤器)更弱。
kstem
过滤器等同于 stemmer
过滤器的 light_english
变体。
此过滤器使用 Lucene 的 KStemFilter。
示例
编辑下面的分析 API 请求使用 kstem
过滤器将 the foxes jumping quickly
词干提取为 the fox jump quick
resp = client.indices.analyze( tokenizer="standard", filter=[ "kstem" ], text="the foxes jumping quickly", ) print(resp)
response = client.indices.analyze( body: { tokenizer: 'standard', filter: [ 'kstem' ], text: 'the foxes jumping quickly' } ) puts response
const response = await client.indices.analyze({ tokenizer: "standard", filter: ["kstem"], text: "the foxes jumping quickly", }); console.log(response);
GET /_analyze { "tokenizer": "standard", "filter": [ "kstem" ], "text": "the foxes jumping quickly" }
过滤器生成以下词元:
[ the, fox, jump, quick ]
添加到分析器
编辑下面的 创建索引 API 请求使用 kstem
过滤器来配置一个新的 自定义分析器。
为了正常工作,kstem
过滤器需要小写词元。为了确保词元是小写的,请在分析器配置中将 lowercase
过滤器添加到 kstem
过滤器之前。
resp = client.indices.create( index="my-index-000001", settings={ "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "whitespace", "filter": [ "lowercase", "kstem" ] } } } }, ) print(resp)
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { tokenizer: 'whitespace', filter: [ 'lowercase', 'kstem' ] } } } } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", settings: { analysis: { analyzer: { my_analyzer: { tokenizer: "whitespace", filter: ["lowercase", "kstem"], }, }, }, }, }); console.log(response);
PUT /my-index-000001 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "whitespace", "filter": [ "lowercase", "kstem" ] } } } } }