"mixing relevance and popularity is nothing short of impossible in Elasticsearch. Either you sort by relevance or by using a popularity attribute, you cannot mix both."<p>This is a false statement,<p><a href="http://www.elasticsearch.org/guide/reference/query-dsl/custom-filters-score-query/" rel="nofollow">http://www.elasticsearch.org/guide/reference/query-dsl/custo...</a><p>This combined with scripts give you unlimited possibilities to alter you score based on whatever you please. The syntax is a bit wonky in the current version perhaps but awesomeness is on the way:<p><a href="https://github.com/elasticsearch/elasticsearch/issues/3423" rel="nofollow">https://github.com/elasticsearch/elasticsearch/issues/3423</a><p>"Unfortunately Elasticsearch fuzzy matching does not work out of the box, is complex to customize, and does not provide the ability to highlight prefixes."<p>There are more ways to catch typo's then fuzzy and levensteins, ngrams for instance. Elasticsearch allows you to do both but yes its true you have to know your way around analyzers/tokenizers and mapping a little bit to get the best results in elasticsearch. If you use the ngrams approach highlighting also works alot better.<p>"This sorting configuration might seem pretty explicit, but it is in fact quite dangerous as it conflicts with the boost on fields. To better understand the problem, let’s look at the query ‘the rains’:"<p>Its true sorting trumps boosting, but given the assumption you cannot alter _score this whole section seems contrived.<p>In the instant search section they use elasticsearch's querstring query to search for `world w*` this is indeed a very slow way since it will generate a wildcard query in the background they probably should have written the query using a phrase prefix query.