Words with the same meaning
You may have heard about synonyms—words that have the same or similar meaning. Sometimes, you will want to have some words match when one of those words is entered into the search box. Let's recall our sample data from The example data section of Chapter 3, Searching Your Data; there was a book called Crime and Punishment
. What if we want that book to be matched not only when the words crime
or punishment
are used, but also when using words like criminality
and abuse
. To perform this, we will use synonyms.
The synonym filter
In order to use the synonym
filter, we need to define our own analyzer. Our analyzer will be called synonym
and will use the whitespace
tokenizer and a single filter called synonym
. Our filter's type
property needs to be set to synonym
, which tells Elasticsearch that this filter is a synonym
filter. In addition to that, we want to ignore case so that upper- and lowercase synonyms will be treated equally (set the ignore_case
property to true
...