Jag skulle använda Apache Solr . Jag tror att det är mer flexibelt än Sphinx. Solr stöder fulltextsökning och jag tror har tillägg för semantiskt stöd (som siren ). Solr är den serveriserade versionen av Lucene.
Solr stöder ett SynonymFilter:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#SynonymFilter
Det här inlägget diskuterar några strategier för att optimera innehållshämtning http://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr