note Normalizers are similar to analyzers except that they may only emit a single token. demo PUT normalizer_index { "settings": { "analysis": { "char_filter": { "quote": { "type": "mapping", "mappings": [ "« => \"", "» => \"" ] } }, "normalizer": { "my_normalizer": { "type": "custom", "char_filter": ["quote"], "filter": ["lowercase", "asciifolding"] } } } }, "mappings": { "properties": { "foo": { "type": "keyword", "normalizer": "my_normalizer" } } } } GET normalizer_index/_analyze { "field": "foo", "text":"Is this déja vu? « test »" }