The _analyzer mapping allows to use a document field property as the name of the analyzer that will be used to index the document. The analyzer will be used for any field that does not explicitly defines an analyzer or index_analyzer when indexing.
Here is a simple mapping:
{
"type1" : {
"_analyzer" : {
"path" : "my_field"
}
}
}
The above will use the value of the my_field to lookup an analyzer registered under it. For example, indexing a the following doc:
{
"my_field" : "whitespace"
}
Will cause the whitespace analyzer to be used as the index analyzer for all fields without explicit analyzer setting.
The default path value is _analyzer, so the analyzer can be driven for a specific document by setting _analyzer field in it. If custom json field name is needed, an explicit mapping with a different path should be set.
By default, the _analyzer field is indexed, it can be disabled by settings index to no in the mapping.