At least w.r.t. to the synonym problem, more modern search techniques that rely on language modeling and word representations seem to solve that.
- https://github.com/Hironsan/bertsearch
- https://github.com/hanxiao/bert-as-service
There was another I can't find right now that looked more polished/professional. But, in short, no it's pretty easy to setup. Just need a machine with a pretty big disk and be ok with an index latency. If you're using elastic search then you're already there on both accounts!
A decent video covering it from a programmers perspective (where I'm coming from) https://www.youtube.com/watch?v=LSS_bos_TPI
From a math perspective there's also good materials.
Essentially Apple + Tree != Apple + Computers allowing you to differentiate search like this.