リバーストークンフィルター
ストリーム内の各トークンを逆にします。たとえば、reverse
フィルターを使用してcat
をtac
に変更できます。
逆にされたトークンは、-ion
で終わる単語を見つけたり、拡張子によってファイル名を検索したりするなど、サフィックスベースの検索に役立ちます。
このフィルターはLuceneのReverseStringFilterを使用します。
例
次の分析APIリクエストは、reverse
フィルターを使用してquick fox jumps
内の各トークンを逆にします:
Python
resp = client.indices.analyze(
tokenizer="standard",
filter=[
"reverse"
],
text="quick fox jumps",
)
print(resp)
Ruby
response = client.indices.analyze(
body: {
tokenizer: 'standard',
filter: [
'reverse'
],
text: 'quick fox jumps'
}
)
puts response
Js
const response = await client.indices.analyze({
tokenizer: "standard",
filter: ["reverse"],
text: "quick fox jumps",
});
console.log(response);
コンソール
GET _analyze
{
"tokenizer" : "standard",
"filter" : ["reverse"],
"text" : "quick fox jumps"
}
フィルターは次のトークンを生成します:
テキスト
[ kciuq, xof, spmuj ]
アナライザーに追加
次のインデックス作成APIリクエストは、reverse
フィルターを使用して新しいカスタムアナライザーを構成します。
Python
resp = client.indices.create(
index="reverse_example",
settings={
"analysis": {
"analyzer": {
"whitespace_reverse": {
"tokenizer": "whitespace",
"filter": [
"reverse"
]
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'reverse_example',
body: {
settings: {
analysis: {
analyzer: {
whitespace_reverse: {
tokenizer: 'whitespace',
filter: [
'reverse'
]
}
}
}
}
}
)
puts response
Js
const response = await client.indices.create({
index: "reverse_example",
settings: {
analysis: {
analyzer: {
whitespace_reverse: {
tokenizer: "whitespace",
filter: ["reverse"],
},
},
},
},
});
console.log(response);
コンソール
PUT reverse_example
{
"settings" : {
"analysis" : {
"analyzer" : {
"whitespace_reverse" : {
"tokenizer" : "whitespace",
"filter" : ["reverse"]
}
}
}
}
}