Technology Fridays: Algolia Makes Enterprise Search Sexy Again
Welcome to Technology Fridays! today we are going to deep dive into the search platform space with a technology that is gaining a log of momentum in the market: Algolia. The Algolia platform is one of the new players in the search space powering many well-known websites including this one(Medium).
The search space is one of the super hot areas that hasn’t live up to expectation in the enterprises. From the search platforms provides by enterprise software incumbents such as Oracle(Endeca) or Microsoft(SharePoint) to open source stacks such as Lucene-Solr and some of its corresponding commercial distributions such as Lucid Imagination’s Fusion, search platforms have generally failed to capture meaningful market share and become mainstream in the enterprise. Recently , a new generation of search platforms lead by Elasticsearch but including technologies such as SwiftType, Searchify and, of course, Algolia have stormed the market with simpler, developer-friendly search models that have gain them a lot of traction with both consumers and enterprises.
Algolia is a cloud-based search platform that enables the indexing and search of documents using very simple and yet robust interfaces. Algolia supports a large number of search models such as full-text, numerical or facets which can be adapted to different scenarios.
Simplicity is one of the key assets of the Algolia platform. Developers can start using Algolia by importing the data they would like to search upon. That process can be done manually through the Algolia Dashboard(the main UI of the platform) or using the API. The import model support data additions, updates, deletions and other data change mechanisms that enable seamless data synchronization with business data sources.
After the data is imported, algolia starts building indices that store the data in a format optimized for searching. Indices are the fundamental record storage structure in Algolia and can be managed using the Dashboard or the API. When Algolia initially indexes data, it uses a default algorithm to rank the search results. Developers can customize the relevance of search results by configuring Ranking Attributes that guide the search engine based on the relevant of individual data records.
The Algolia Search API is the main vehicle used to issue search queries against indexed data. Algolia supports various search techniques such as facet or proximity-based searching that can be used to filter and optimized the search results. Additionally, Algolia provides SDKs for different programming languages such as Java, C# or Objective-C which simplifies the use of Algolia in third party applications. Algolia represents search results as JSON payloads that include not only data records but also relevant search metadata such as facets, processing times, number of hits and many others.
One of the key differentiators of Algolia is its capability to expand beyond a backed search platform by helping developers optimize the frontend search experience. In that context, Algolia provides helper libraries that can be used to customize the frontend search UI. For instance, the autocomplete.js library dynamically updates a dropdown menu of possible search queries as the user types. Similarly, the instantsearch.js updates search results real time based on the user input.
Algolia runs on a highly sophisticated Distributed Search Network(DSN) that encompasses over 30 data centers across the globe. algolia’s DSN uses some of the principles of CDNs to clone search results closers to users.
Many people might intuitively compare Algolia to Elasticsearch, the uber-popular open source search platforms. However, that comparison might not be completely accurate. While Elasticsearch provides an open platform to build search engines, Algolia focuses on providing both backend and frontend experiences to power search experiences in websites and mobile apps. Other search stacks such as searchify or Swifttype are closer to Algolia’s feature set and vision.