Stemmer override token filter
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.
| 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. |
If you use rules_path, the file must be available on every node in the cluster. How you add it depends on where you run Elasticsearch: refer to the custom configuration file instructions for your deployment type.
Here is an example:
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:
running, runs => run
stemmer => stemmer
You can also define the overrides rules inline:
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" ] } } } } }