The UX of keyword searches

I’m not interested in the UI of search boxes and results, but the behaviour of a keyword search. Features like stemming, synonyms, disambiguation, typo correction etc.
What makes a great experience for the process of typing …