Synonym Problem

A user's search input does not have to be modelled as a single query clause.
Often it's beneficial to try several different interpretations of their input in a single search request using an array of queries in the should clause of a containing bool query. The more clauses that match a should array, the better the score.
You could try (in reverse order of importance):

  1. An exact-match phrase query on full-words
  2. An exact match query on full words
  3. An partial match query using n-grams.

Currently you are are only doing 3). If you also index minus the n-grams you can do 2) as well and give an extra boost to a match on that query using the boost parameter. If someone search for irish bar then 1) would help rank matches better too.

1 Like