[[analysis-stemmer-override-tokenfilter]]
=== Stemmer override token filter
++++
<titleabbrev>Stemmer override</titleabbrev>
++++

Overrides stemming algorithms, by applying a custom mapping, then
protecting these terms from being modified by stemmers. Must be placed
before any stemming filters.

Rules are mappings in the form of `token1[, ..., tokenN] => override`.

[cols="<,<",options="header",]
|=======================================================================
|Setting |Description
|`rules` |A list of mapping rules to use.

|`rules_path` |A path (either relative to `config` location, or
absolute) to a list of mappings.
|=======================================================================

Here is an example:

[source,console]
--------------------------------------------------
PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",
          "filter": [ "lowercase", "custom_stems", "porter_stem" ]
        }
      },
      "filter": {
        "custom_stems": {
          "type": "stemmer_override",
          "rules_path": "analysis/stemmer_override.txt"
        }
      }
    }
  }
}
--------------------------------------------------

Where the file looks like:

[source,stemmer_override]
--------------------------------------------------
include::{es-test-dir}/cluster/config/analysis/stemmer_override.txt[]
--------------------------------------------------

You can also define the overrides rules inline:

[source,console]
--------------------------------------------------
PUT /my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "standard",
          "filter": [ "lowercase", "custom_stems", "porter_stem" ]
        }
      },
      "filter": {
        "custom_stems": {
          "type": "stemmer_override",
          "rules": [
            "running, runs => run",
            "stemmer => stemmer"
          ]
        }
      }
    }
  }
}
--------------------------------------------------
