Reverse token filter

edit

Reverses each token in a stream. For example, you can use the reverse filter to change cat to tac.

Reversed tokens are useful for suffix-based searches, such as finding words that end in -ion or searching file names by their extension.

This filter uses Lucene’s ReverseStringFilter.

Example

edit

The following analyze API request uses the reverse filter to reverse each token in quick fox jumps:

resp = client.indices.analyze(
    tokenizer="standard",
    filter=[
        "reverse"
    ],
    text="quick fox jumps",
)
print(resp)
response = client.indices.analyze(
  body: {
    tokenizer: 'standard',
    filter: [
      'reverse'
    ],
    text: 'quick fox jumps'
  }
)
puts response
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"
}

The filter produces the following tokens:

[ kciuq, xof, spmuj ]

Add to an analyzer

edit

The following create index API request uses the reverse filter to configure a new custom analyzer.

resp = client.indices.create(
    index="reverse_example",
    settings={
        "analysis": {
            "analyzer": {
                "whitespace_reverse": {
                    "tokenizer": "whitespace",
                    "filter": [
                        "reverse"
                    ]
                }
            }
        }
    },
)
print(resp)
response = client.indices.create(
  index: 'reverse_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          whitespace_reverse: {
            tokenizer: 'whitespace',
            filter: [
              'reverse'
            ]
          }
        }
      }
    }
  }
)
puts response
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"]
        }
      }
    }
  }
}