I would definitely stay away from elastic search, as there are many versions, forks, and many hidden costs. Algolia is better, but still can be costly.
If you must use an external search, I would look into Typesense or MeiliSearch. With your dataset you might even look into exporting to Google Big Query, which can be fast.
However, I don’t see why you can’t do a custom query in DQL. First run your rules inputting the fields you want to search, then query your 3 different fields using vars. You would only be searching for each results, not the entire thing. Of course, that is an “AND” query. I know you probably want every possible option.
I am not understanding your worry for performing a search. If you can perform a regular full-text search, I don’t see why you would have issues with a few extra fields (indexes help, not burden).
In other words, you shouldn’t have any more worries than you normally do while dealing with any operation in a database that large in the first place.
Just my opinion, but I am definitely a programmer not a server guy.
J