Reverse token filter
The reverse token filter reverses the order of the characters in each token, making suffix information accessible at the beginning of the reversed tokens during analysis.
This is useful for suffix-based searches:
The reverse token filter is useful when you need to perform suffix-based searches, such as in the following scenarios:
- Suffix matching: Searching for words based on their suffixes, such as identifying words with a specific ending (for example,
-tionor-ing). - File extension searches: Searching for files by their extensions, such as
.txtor.jpg. - Custom sorting or ranking: By reversing tokens, you can implement unique sorting or ranking logic based on suffixes.
- Autocomplete for suffixes: Implementing autocomplete suggestions that use suffixes rather than prefixes.
Example
The following example request creates a new index named my-reverse-index and configures an analyzer with a reverse filter:
PUT /my-reverse-index
{
"settings": {
"analysis": {
"filter": {
"reverse_filter": {
"type": "reverse"
}
},
"analyzer": {
"my_reverse_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"reverse_filter"
]
}
}
}
}
}
Generated tokens
Use the following request to examine the tokens generated using the analyzer:
GET /my-reverse-index/_analyze
{
"analyzer": "my_reverse_analyzer",
"text": "hello world"
}
The response contains the generated tokens:
{
"tokens": [
{
"token": "olleh",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "dlrow",
"start_offset": 6,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
}
]
}