diff --git a/docs/reference/analysis/tokenfilters/reverse-tokenfilter.asciidoc b/docs/reference/analysis/tokenfilters/reverse-tokenfilter.asciidoc index 08eaa796951c8..e0c9f93c97b3d 100644 --- a/docs/reference/analysis/tokenfilters/reverse-tokenfilter.asciidoc +++ b/docs/reference/analysis/tokenfilters/reverse-tokenfilter.asciidoc @@ -4,4 +4,90 @@ Reverse ++++ -A token filter of type `reverse` that simply reverses each token. +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 +https://lucene.apache.org/core/{lucene_version_path}/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html[ReverseStringFilter]. + +[[analysis-reverse-tokenfilter-analyze-ex]] +==== Example + +The following <> request uses the `reverse` +filter to reverse each token in `quick fox jumps`: + +[source,console] +-------------------------------------------------- +GET _analyze +{ + "tokenizer" : "standard", + "filter" : ["reverse"], + "text" : "quick fox jumps" +} +-------------------------------------------------- + +The filter produces the following tokens: + +[source,text] +-------------------------------------------------- +[ kciuq, xof, spmuj ] +-------------------------------------------------- + +///////////////////// +[source,console-result] +-------------------------------------------------- +{ + "tokens" : [ + { + "token" : "kciuq", + "start_offset" : 0, + "end_offset" : 5, + "type" : "", + "position" : 0 + }, + { + "token" : "xof", + "start_offset" : 6, + "end_offset" : 9, + "type" : "", + "position" : 1 + }, + { + "token" : "spmuj", + "start_offset" : 10, + "end_offset" : 15, + "type" : "", + "position" : 2 + } + ] +} +-------------------------------------------------- +///////////////////// + +[[analysis-reverse-tokenfilter-analyzer-ex]] +==== Add to an analyzer + +The following <> request uses the +`reverse` filter to configure a new +<>. + +[source,console] +-------------------------------------------------- +PUT reverse_example +{ + "settings" : { + "analysis" : { + "analyzer" : { + "whitespace_reverse" : { + "tokenizer" : "whitespace", + "filter" : ["reverse"] + } + } + } + } +} +-------------------------------------------------- \ No newline at end of file