ステマーオーバーライドトークンフィルター
ステミングアルゴリズムをオーバーライドし、カスタムマッピングを適用して、これらの用語がステマーによって変更されないように保護します。すべてのステミングフィルターの前に配置する必要があります。
ルールはtoken1[, ..., tokenN] => override
の形式のマッピングです。
設定 | 説明 |
---|---|
rules |
使用するマッピングルールのリスト。 |
rules_path |
マッピングのリストへのパス(config の場所に対して相対的、または絶対)。 |
以下は例です:
Python
resp = client.indices.create(
index="my-index-000001",
settings={
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"custom_stems",
"porter_stem"
]
}
},
"filter": {
"custom_stems": {
"type": "stemmer_override",
"rules_path": "analysis/stemmer_override.txt"
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: 'standard',
filter: [
'lowercase',
'custom_stems',
'porter_stem'
]
}
},
filter: {
custom_stems: {
type: 'stemmer_override',
rules_path: 'analysis/stemmer_override.txt'
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: "standard",
filter: ["lowercase", "custom_stems", "porter_stem"],
},
},
filter: {
custom_stems: {
type: "stemmer_override",
rules_path: "analysis/stemmer_override.txt",
},
},
},
},
});
console.log(response);
コンソール
PUT /my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [ "lowercase", "custom_stems", "porter_stem" ]
}
},
"filter": {
"custom_stems": {
"type": "stemmer_override",
"rules_path": "analysis/stemmer_override.txt"
}
}
}
}
}
ファイルは次のようになります:
ステマーオーバーライド
running, runs => run
stemmer => stemmer
インラインでオーバーライドルールを定義することもできます:
Python
resp = client.indices.create(
index="my-index-000001",
settings={
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"custom_stems",
"porter_stem"
]
}
},
"filter": {
"custom_stems": {
"type": "stemmer_override",
"rules": [
"running, runs => run",
"stemmer => stemmer"
]
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: 'standard',
filter: [
'lowercase',
'custom_stems',
'porter_stem'
]
}
},
filter: {
custom_stems: {
type: 'stemmer_override',
rules: [
'running, runs => run',
'stemmer => stemmer'
]
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "my-index-000001",
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: "standard",
filter: ["lowercase", "custom_stems", "porter_stem"],
},
},
filter: {
custom_stems: {
type: "stemmer_override",
rules: ["running, runs => run", "stemmer => stemmer"],
},
},
},
},
});
console.log(response);
コンソール
PUT /my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [ "lowercase", "custom_stems", "porter_stem" ]
}
},
"filter": {
"custom_stems": {
"type": "stemmer_override",
"rules": [
"running, runs => run",
"stemmer => stemmer"
]
}
}
}
}
}