I've got a field in an ElasticSearch field which I do not want to have analyzed, i. e. it should be stored and compared verbatim. The values will contain letters, numbers, whitespace, dashes, slashes and maybe other characters.
If I do not give an analyzer in my mapping for this field, the default still uses a tokenizer which hacks my verbatim string into chunks of words. I don't want that.
Is there a super simple analyzer which, basically, does not analyze? Or is there a different way of denoting that this field shall not be analyzed?
I only create the index, I don't do anything else. I can use analyzers like "english" for other fields which seems to be built-in names for pre-configured analyzers. Is there a list of other names? Maybe there's one fitting my needs (namely doing nothing with the input).
This is my mapping currently:
{
"my_type": {
"properties": {
"my_field1": { "type": "string", "analyzer": "english" },
"my_field2": { "type": "string" }
}
}
}
my_field1
is language-dependent; this seems to work. my_field2
shall be verbatim. I'd like to give an analyzer there which simply does not do anything.
A sample value for my_field2
would be "B45c 14/04"
.
not_analyzed
several times, but always thought using it would mean that it cannot be searched at all (apparently that's whatno
is used for). The link to the documentation was enlightening, thank you! (And given time I will accept this answer unless sth even more helpful appears.) – Aloysia