I would focus on anticipating the user's search needs even before he/she formulates them and types out a search query. I would use as much context that a user is willing to provide me - location, recent email messages, voice call transcripts, unread messages, web browsing history, etc - to try to anticipate what the user is likely to query for. For example, a sales engineer who receives a technical query in his email…
If you can anticipate a user's search needs, why not take the next step and provide the answers before the user gets around to searching?
Rather, I take the approach that search is a commodity that is already fast enough and good enough. I let the user choose (and thereby rate/vote up) a query and then fetch only relevant results.