Algolia Takes In-App Search to New Places
Algolia, which offers a hosted search-as-you-type API, is out to win the hearts and minds of developers by offering search as a customizable building block for applications, much the way Stripe provides payment and Twilio offers voice and messaging.
“Google offers a very good product in Google Places, but you cannot do what you want with it. We’ve provided something that’s much more open that you can combine with your own data or you can extend with new things – you could update things on a map to make it better,” he said.
Algolia has set out to improve the search experience for individual websites and apps in response to the shortcomings of database full-text search. It originated as an offline software development kit built to provide fast, reliable, and relevant search amid the power and processing limitations of mobile.
Dessaigne freely admits that making Places free is a bid to raise visibility for the company, originally based in Paris, but now headquartered in San Francisco.
Algolia has raised $21.22 million from investors including Accel Partners, Docker’s Solomon Hykes, Kevin Rose and Splunk’s Erik Swan. Its 1,600 customers include CrunchBase, Genius.com, Vevo, Digital Ocean, Periscope and Birchbox.
Founded in 2012, the founders saw an opportunity from the number of developers on Stack Overflow seeking to embed Apache Lucene, the library used in Elasticsearch, in their own mobile apps, a use case Dessaigne says it was not designed for. So the company builds its own SDK for offline search for mobile.
“The hardware constraints kind of forced us to reinvent search to work with the tradeoffs to make it work on mobile. It was a great success as far as tech, but the market was not at all what we’d hoped for. That’s why we later pivoted to SaaS,” Dessaigne said. “If we had started on servers, we probably would never have thought about these ideas.”
In the switch to SaaS, the C++ SDK was embedded as a Nginx module on high-end servers. Company chief technology officer Julien Lemoine has written about the company’s decision to use bare metal as opposed to cloud infrastructure, as well as its work to overcome obstacles to provide high performance. It uses 36 data centers across 15 regions around the world and replicates customer data across three different data centers.
It now boasts of returning results in less than 50 milliseconds in the world’s top markets — up to 200 times faster than big data-oriented Elasticsearch. Other competitors include Swiftype, Searchify and Amazon CloudSearch.
Algolia also built its own ranking algorithm to improve relevance.
“Traditionally, relevance is based on the number of references, which really is not a good for most use cases today,” according to Dessaigne. “If you’re looking for a product, you’re not really interested in how many times a word appears, you’re more interested in where the word appears. If you’re on an e-commerce site, you might be more interested in how many likes, how many fans a product has.
“So we set out to build something where we combine events with business data. With this, customers can leverage their knowledge about their own users,” he said.
“If you’re on a social network about TV shows, if you type ‘G,’ you get ‘Game of Thrones’; you type ‘B,’ you get ‘Breaking Bad.’ Even if that’s not what you’re looking for, within seven letters, we’ll usually find what you want. We can do that because we have data about users’ behavior.”
Algolia provides a JSON-based REST API for indexing data. Customers can customize searchable attributes — such as popularity, geolocation data, tags, dates, — and attribute ranking relevance using their business data stored in multiple slave indices that are synchronized with a master index. Updates can be made on the fly.
To eliminate network and processing latency, it recommends eliminating search logic and functionality on the back end, instead focusing on the front end so all queries originating from the user’s browser or mobile device deal directly with Algolia. At the Serverlessconf in May, developer and TNS contributor Joe Emison said that he’d much rather use Algolia than Elasticsearch directly, given that a lot of the configuration work as already been done by the company, making it much easier to integrate into his own apps.
It’s integrated with most popular programming languages as well as a host of platforms and tools including WordPress, Heroku, Zendesk, Meteor, MongoDB and ColdFusion.
Going forward, it’s working on personalizing search to the user’s behavior and allowing users to seamlessly switch from online to offline search, should they lose power for whatever reason.
Docker is a sponsor of The New Stack.