Userei Apache Solr . Penso che sia più flessibile di Sphinx. Solr supporta la ricerca full-text e credo abbia componenti aggiuntivi per il supporto semantico (come siren ). Solr è la versione serverizzata di Lucene.
Solr supporta un filtro Synonym:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#SynonymFilter
Questo post discute alcune strategie per ottimizzare il recupero dei contenuti http://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr