Specifying a different analyzer
In the previous recipes, we saw how to map different fields and objects in ElasticSearch and described how easy it is to change the standard analyzer with the analyzer
, index_analyzer
, and search_analyzer
properties.
In this recipe, we will see several analyzers and how to use them in order to improve the quality of indexing and searching.
Getting ready
You need a working ElasticSearch cluster.
How to do it...
Every core type field allows you to specify a custom analyzer for indexing and searching as field parameters.
For example, if you want the name field to use 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 an analyzer comes from Lucene (the core of ElasticSearch). An analyzer is a Lucene element that is composed of a tokenizer, which splits a text...