I have been thinking about these a lot lately. There is lot more scope on improving current search results.
I believe simple two stage system might be enough to produce decent system.
Stage - 1. query expansion and reverse index based retrieval
Stage - 2. re-ranking based on few combination of heuristics. (page rank + word embedding + query analysis)
Would you like to talk more about this ? I have email address in my profile.