ASCII folding token filter
基本ラテンUnicodeブロック(最初の127 ASCII文字)に含まれないアルファベット、数字、記号の文字を、存在する場合はそのASCII等価物に変換します。たとえば、このフィルターはà
をa
に変更します。
このフィルターはLuceneのASCIIFoldingFilterを使用します。
Example
次のanalyze APIリクエストは、asciifolding
フィルターを使用してaçaí à la carte
のダイアクリティカルマークを削除します:
Python
resp = client.indices.analyze(
tokenizer="standard",
filter=[
"asciifolding"
],
text="açaí à la carte",
)
print(resp)
Ruby
response = client.indices.analyze(
body: {
tokenizer: 'standard',
filter: [
'asciifolding'
],
text: 'açaí à la carte'
}
)
puts response
Js
const response = await client.indices.analyze({
tokenizer: "standard",
filter: ["asciifolding"],
text: "açaí à la carte",
});
console.log(response);
Console
GET /_analyze
{
"tokenizer" : "standard",
"filter" : ["asciifolding"],
"text" : "açaí à la carte"
}
フィルターは次のトークンを生成します:
Text
[ acai, a, la, carte ]
Add to an analyzer
次のcreate index APIリクエストは、asciifolding
フィルターを使用して新しいcustom analyzerを構成します。
Python
resp = client.indices.create(
index="asciifold_example",
settings={
"analysis": {
"analyzer": {
"standard_asciifolding": {
"tokenizer": "standard",
"filter": [
"asciifolding"
]
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'asciifold_example',
body: {
settings: {
analysis: {
analyzer: {
standard_asciifolding: {
tokenizer: 'standard',
filter: [
'asciifolding'
]
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "asciifold_example",
settings: {
analysis: {
analyzer: {
standard_asciifolding: {
tokenizer: "standard",
filter: ["asciifolding"],
},
},
},
},
});
console.log(response);
Console
PUT /asciifold_example
{
"settings": {
"analysis": {
"analyzer": {
"standard_asciifolding": {
"tokenizer": "standard",
"filter": [ "asciifolding" ]
}
}
}
}
}
Configurable parameters
preserve_original
- (オプション、ブール値)
true
の場合、元のトークンと折りたたまれたトークンの両方を出力します。デフォルトはfalse
です。
Customize
たとえば、次のリクエストは`````asciifolding`````フィルターを作成し、`````preserve_original`````をtrueに設定します:
#### Python
``````python
resp = client.indices.create(
index="asciifold_example",
settings={
"analysis": {
"analyzer": {
"standard_asciifolding": {
"tokenizer": "standard",
"filter": [
"my_ascii_folding"
]
}
},
"filter": {
"my_ascii_folding": {
"type": "asciifolding",
"preserve_original": True
}
}
}
},
)
print(resp)
`
Ruby
response = client.indices.create(
index: 'asciifold_example',
body: {
settings: {
analysis: {
analyzer: {
standard_asciifolding: {
tokenizer: 'standard',
filter: [
'my_ascii_folding'
]
}
},
filter: {
my_ascii_folding: {
type: 'asciifolding',
preserve_original: true
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "asciifold_example",
settings: {
analysis: {
analyzer: {
standard_asciifolding: {
tokenizer: "standard",
filter: ["my_ascii_folding"],
},
},
filter: {
my_ascii_folding: {
type: "asciifolding",
preserve_original: true,
},
},
},
},
});
console.log(response);
Console
PUT /asciifold_example
{
"settings": {
"analysis": {
"analyzer": {
"standard_asciifolding": {
"tokenizer": "standard",
"filter": [ "my_ascii_folding" ]
}
},
"filter": {
"my_ascii_folding": {
"type": "asciifolding",
"preserve_original": true
}
}
}
}
}