Ja bym użył Apache Solr . Myślę, że jest bardziej elastyczny niż Sphinx. Solr obsługuje wyszukiwanie pełnotekstowe i wydaje mi się, że ma dodatki do obsługi semantycznej (takie jak siren ). Solr to serwerowa wersja Lucene.
Solr obsługuje SynonymFilter:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Syn /a>
W tym poście omówiono niektóre strategie optymalizacji wyszukiwania treści http://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr