Compare Typesense
vs Algolia
vs ElasticSearch
vs Meilisearch

This table is meant to give you an objective side-by-side comparison of key features in each search engine and is based on each search engine's documentation.

We've strived to provide accurate information below, but if you notice any issues, please open an issue here.

Overview

Typesense Algolia ElasticSearch Meilisearch
Source Code Fully open source Proprietary closed source Source-available, licensed under SSPL Fully open source
First Commit 2015 2012 2010 2018
Built Using C++ C++ Java Rust
Core Search Algorithm Built from the ground-up Built from the ground-up Built on top of Lucene Built from the ground-up
Best Suited For Instant Search-as-you-type Experiences for data sets that can fit in RAM, up to 24 TB (or current commercially available RAM size). Instant Search-as-you-type Experiences for datasets up to 128 GB in size. General-purpose search & aggregations over petabyte-scale datasets (eg: log data) Instant Search-as-you-type Experiences for up to a few hundred thousand records, that don't require a production-grade highly-available setup.
Primary Index Location RAM RAM Disk, with RAM cache Disk with Memory Mapped files

Deployment Options

Typesense Algolia ElasticSearch Meilisearch
Self-Hosted Option ✅️ ✅️ ✅️
SaaS Option ✅️ ✅️ ✅️
High Availability

RAFT-based multi-node clustering


RAFT-based multi-node clustering


Active-passive replication


Only supports a single-node setup, which creates a potential single point of failure and so is not production-ready.
CDN-like Geo-Distributed clusters

Supported in self-hosted and SaaS options, called Search Delivery Network


Available in Premium tier, called Distributed Search Network


Not available as part of hosted offering
Runtime Dependencies None. Self-contained binary.

Built-in high performance HTTP server, that can be exposed to the frontend directly.
N/A, since it's SaaS only Requires JVM, and an application backend.

Cannot be directly exposed to frontend - requires use of nginx, apache or the like as a reverse proxy in front
Recommends use of nginx, apache or the like as a reverse proxy in front, before exposing to frontend
Index Backward Compatibility

Fully backward compatible


Fully backward compatible


Fully backward compatible


Not backward compatible across versions. Version upgrades require re-indexing.
Upgrade Path Replace binary, restart process Managed SaaS service, doesn't require upgrades Replace binary, restart process Replace binary, re-index all documents

Features

Typesense Algolia ElasticSearch Meilisearch
REST API ✅️ ✅️ ✅️ ✅️
Typo Tolerance ✅️ ✅️ ✅️

But slow and affects relevance
✅️
Query Field Weights &
Boosting
✅️ ✅️
Scoped API Keys &
Multi-tenant indices
✅️ ✅️
Federated Multi-Index Search ✅️ ✅️ ✅️
Grouping / Distinct ✅️

Upto one distinct field
✅️

Upto one distinct field
Dynamic Sorting

Sort fields can be defined at query time using a single index
🔶

Duplicate indices need to be created for each sort order, for Exhaustive Sorting.

Virtual replica indices can be used for Relevant Sorting.


Sort fields can be defined at query time using a single index


Sort fields need to be defined upfront, but can be changed at query time, using a single index.
Faceting & Filtering ✅️ ✅️ ✅️
Facet Value Searches ✅️ ✅️
Result Pinning / Merchandising ✅️

Upto 10 results in Free Tier, Upto 10,000 results in Premium Tier
✅️
Synonyms ✅️ ✅️

Upto 10,000 per index
✅️ ✅️
Dynamic Synonym Suggestions ❌️ ✅️

Available in Premium Tier
Language support All languages, expect logographic ones All languages All languages Latin-based languages, English, CJK & Kanji languages
Stop words ✅️ ✅️ ✅️
Geo Search ✅️ ✅️
Automatic Record ID generation ✅️ ✅️

IDs needs to be pre-generated
Sort by String field

But not recommended
✅️
Search Analytics Client-side, through InstantSearch.js Client-side and Server-side Client-side, through InstantSearch.js
Record Validations ✅️

with coerced mapping
Custom Ranking Rules

Upto 3 fields
✅️ ✅️ ✅️
Negative Keyword Search
(-query)
✅️ ✅️ ✅️
Phrase Search
("some query")
✅️ ✅️
User-level Search Personalization

Premium Tier
Collection Aliases ✅️ ✅️
A/B Testing Results

Premium Tier
Query Suggestions ✅️
Visual Dashboard

In Typesense Cloud
✅️ 🔶️

3rd party plugins
✅️

Search only
Site Crawler 🔶️

DocSearch crawler for docs sites.


DocSearch crawler for docs sites.
General site crawler is part of Premium Tier.
🔶️

DocSearch crawler for docs sites.
Search UI Component Library

Supports InstantSearch.js


InstantSearch.js


Search UI, requires hosted search


Supports InstantSearch.js
Privacy Friendliness

Does NOT collect usage analytics, personal data, or IP addresses in both Self-Hosted and SaaS options.
🔶

Collects personal data, usage analytics & IP addresses.
🔶

Collects personal data, hardware information, RAM used, unique fingerprint ID for licensing.
🔶

Collects personal data, hardware information, total number of documents, number of document updates & server uptime. Opt-out supported.

Limits

Typesense Algolia ElasticSearch Meilisearch
Maximum Indices No limitation No limitation No limitation No limitation
Maximum Index Size No limitations, only constrained by available RAM 128 GB No limitation 100GB default, can be modified
Maximum Words per field No limitation No limitation No limitation 1000
Maximum Record Size No limitation 10KB No limitation 2GB

Support

Typesense Algolia ElasticSearch Meilisearch
Channels Github issues
Email
Public Slack Community
Phone
Private Slack
Paid Prioritized Support
Github issues
Email
Public Slack Community
Phone
Paid Prioritized Support
Github issues
Email
Public Slack Community
Paid Prioritized Support
Github issues
Email
Public Slack Community
Expert Onboarding & Training