Hey there,<p>Great post. 10 days ago, I've posted a link (<a href="https://news.ycombinator.com/item?id=6476003" rel="nofollow">https://news.ycombinator.com/item?id=6476003</a>) demonstrating how I was able to crawl, index and plug auto-complete on HN posts in less than 2 hours using Algolia Search as a Service API (rails + JS client). The main differences between ES and Algolia for this use-case are about the way prefix matching is handled and the way highlighting is done.<p>To provide auto-completion (prefix matching), whereas ES use ngrams and tokenization tricks to index all word prefixes, Algolia's data structures have a built-in feature enabling to match the prefixes of a word without doing such recipe at indexing time. As a consequence, your indexes will be smaller and your service faster :)
Moreover, with Algolia, using such prefix matching algorithm provide outstanding highlighting capability. In fact, the index knows exactly which word matched (whereas ES knows that a specific "fake" ngram matched, but it's complex to highlight the original words with it), even handling typos.<p>We compared ES and Algolia for a basic "record/database search" use-case in our last blog post: blog.algolia.com/full-text-search-in-your-database-algolia-versus-elasticsearch/.<p>Feel free to contact me if you have any question.<p>Sylvain