The concept_word table stores text in all upper case. The concept search that searches concept work does a lower() and then uses the case insensitive ilike search. This is a inefficient.
Instead, all search strings should be upper-cased and the search switched to a simple like.
Also when the searchOnPhrase parameter is null, we need to do an equals instead of a like. This will lead to better performance as well.