Elasticsearch should perform the following magic:
- If user searches for "bike" elasicsearch queries for "bike" AND "bicycle".
- If user searches for "macbook pro" it doesn't just return items with the word pro in it.
- If the user mis-spells their search elasticsearch is smart enough to search for closest matching word, or come back with suggested searches.
Elasticsearch should perform the following magic: