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:https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Syn /a>
W tym poście omówiono niektóre strategie optymalizacji wyszukiwania treści https://www.lucidimagination.com/devzone/technical-articles/optimizing-findability-lucene-and-solr