Mapping different analyzers
In the previous recipes, we have seen how to map different fields and objects in ElasticSearch and we have described how it's easy to change the standard analyzer with the analyzer
, index_analyzer
, and search_analyzer
properties.
Getting ready
You need a working ElasticSearch cluster.
How to do it...
Every core type field allows specifying a custom analyzer for indexing and for searching as field parameters.
For example, if we want that the name field uses a standard analyzer for indexing and a simple analyzer for searching, the mapping will be as follows:
{ "name": { "type": "string", "index": "analyzed", "index_analyzer": "standard", "search_analyzer": "simple" } }
How it works...
The concept of analyzer comes from Lucene (the core of ElasticSearch). An analyzer is a Lucene element that is composed of a tokenizer, that splits a text in tokens, and one or more token filters that perform token manipulation, such as lowercasing,...