ステマー トークン フィルター
いくつかの言語に対してアルゴリズミック ステミングを提供し、一部には追加のバリアントがあります。サポートされている言語のリストについては、language
パラメータを参照してください。
カスタマイズされていない場合、フィルターは英語に対してポーターステミングアルゴリズムを使用します。
例
次の分析APIリクエストは、stemmer
フィルターのデフォルトのポーターステミングアルゴリズムを使用して、the foxes jumping quickly
をthe fox jump
quickli
にステムします:
Python
resp = client.indices.analyze(
tokenizer="standard",
filter=[
"stemmer"
],
text="the foxes jumping quickly",
)
print(resp)
Ruby
response = client.indices.analyze(
body: {
tokenizer: 'standard',
filter: [
'stemmer'
],
text: 'the foxes jumping quickly'
}
)
puts response
Js
const response = await client.indices.analyze({
tokenizer: "standard",
filter: ["stemmer"],
text: "the foxes jumping quickly",
});
console.log(response);
コンソール
GET /_analyze
{
"tokenizer": "standard",
"filter": [ "stemmer" ],
"text": "the foxes jumping quickly"
}
フィルターは次のトークンを生成します:
テキスト
[ the, fox, jump, quickli ]
アナライザーに追加
次のインデックス作成APIリクエストは、stemmer
フィルターを使用して新しいカスタムアナライザーを構成します。
Python
resp = client.indices.create(
index="my-index-000001",
settings={
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "whitespace",
"filter": [
"stemmer"
]
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: 'whitespace',
filter: [
'stemmer'
]
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: "whitespace",
filter: ["stemmer"],
},
},
},
},
});
console.log(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
パラメータの引数が使用されます。
カスタマイズ
たとえば、次のリクエストは、`````light_german`````アルゴリズムを使用して単語をステムするカスタム`````stemmer`````フィルターを作成します:
#### Python
``````python
resp = client.indices.create(
index="my-index-000001",
settings={
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_stemmer"
]
}
},
"filter": {
"my_stemmer": {
"type": "stemmer",
"language": "light_german"
}
}
}
},
)
print(resp)
`
Ruby
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
Js
const response = await client.indices.create({
index: "my-index-000001",
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: "standard",
filter: ["lowercase", "my_stemmer"],
},
},
filter: {
my_stemmer: {
type: "stemmer",
language: "light_german",
},
},
},
},
});
console.log(response);
コンソール
PUT /my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_stemmer"
]
}
},
"filter": {
"my_stemmer": {
"type": "stemmer",
"language": "light_german"
}
}
}
}
}