You complete me by Alexander Reelsen.
From the post:
Effective search is not just about returning relevant results when a user types in a search phrase, it’s also about helping your user to choose the best search phrases. Elasticsearch already has did-you-mean functionality which can correct the user’s spelling after they have searched. Now, we are adding the completion suggester which can make suggestions while-you-type. Giving the user the right search phrase before they have issued their first search makes for happier users and reduced load on your servers.
Warning: The completion suggester Alexander describes may “change/break in future releases.”
Two features that made me read the post were: readability and custom ordering.
Under readability, the example walks you through returning one output for several search completions.
Suggestions don’t have to be presented in TF/IDF relevance order. A weight assigned to the target of a completion controls the ordering of suggestions.
The post covers several other features and if you are using or considering using Elasticsearch, it is a good read.