What’s so hard about autocomplete?

We often hear people say, “we can build autocomplete ourselves!”  And they’re right!  Showing users suggestions as they type is relatively easy to build.  But showing them the best suggestions with an intuitive, typo-tolerant, lightning-fast interface?  That’s a lot harder.

Here are a few ways that Constructor.io takes standard autocomplete to the next level.

Learning and Conversion Optimization

Showing users a list of results is simple, but figuring out how to rank those results correctly is a lot harder.  Constructor.io uses machine learning algorithms to re-­rank results based on user behavior to maximize clicks and purchases.  Our autocomplete system continually monitors user interactions and adjusts the autocomplete results dynamically.  The end result is that users find what they’re looking for more quickly and convert more often.

Personalization

Naive autocomplete solutions serve the same lowest­ common­ denominator results to all users.  With Constructor.io, your users’ previous searches appear in a separate result section or at the top of existing sections (depending on how you choose to configure it), personalizing the autocomplete experience for each user.

This added personalization means more conversions on your site.  Customers often return to a site multiple times before purchasing an item, and this feature lets them find what they’re looking for faster when they come back.

Robust Typo-Tolerance

Is it “blue ray”, “blue-ray” or “bluray?”  It turns out it’s officially spelled “blu-ray”, but there’s no need for you or your users to get it exactly right — our algorithms figure out your intent even if your spelling doesn’t exactly match the product.

We account for a dozen categories of misspellings, including:

Omitted spaces: We’ll figure out that your search for “soundbar” should be “sound bar”, and “smarttv” should be “smart tv.”

Space-­like characters: Users often mix up spaces, hyphens, slashes, and periods.  No problem!  We’ll figure out what they’re looking for.

Transposed characters: Did you accidentally type “cgaro shorts” instead of “cargo shorts”?  We’ll show the results you’re looking for either way.

Omitted characters: In a hurry and looking for a “plystation”?  We’ll deliver you Sony Playstations regardless.

Spurious character insertion: Did you accidentally type “women’s jacjket”?  We’ll show you women’s jackets instead.

Inverted term order: If you find yourself looking for “diapers huggies”, we’ll show you Huggies diapers.

Sound­alike spelling errors: Looking for an “Amazon ecko”?  We’ll display results for the Amazon Echo without any extra configuration.

All these automatic corrections let your users find what they’re looking for faster, and increase their chance of conversion.

Lightning-Fast Results

While providing an autocomplete service with conversion optimization, personalization, and robust typo-tolerance are challenging, what makes Constructor.io’s autocomplete truly innovative is performing all those feats in a fraction of a second.  We use directed acyclic word graph-derived data structures for compressed storage in memory, allowing us to serve queries on massive datasets in milliseconds.  Our estimated median response times are between 10 and 40ms.

Delivering all this functionality at lightning speed is something we’ve spent years working on and are incredibly proud of.

So, sure, you can build your own autocomplete, but given all these challenges, why would you?