Compare Typesense
vs Algolia
vs ElasticSearch
vs Meilisearch

The following content is based on each search engine's documentation and is meant to provide you with an objective side-by-side comparison.

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 Currently open source, with plans for closed-source extensions in the future
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 10M records, that don't require a production-grade highly-available setup.
Primary Index Location RAM RAM Disk, with RAM cache RAM

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
Requires 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


Duplicate indices need to be created for each sort order
Faceting & Filtering ✅️ ✅️ ✅️ 🔶

Only string-type facets
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, and kanji languages
Stop words ✅️ ✅️ ✅️
Geo Search 🔶

In beta.
✅️ ✅️
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)
✅️ ✅️ ✅️
Exact Keyword Search
("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

Premium Tier
UI Component Library

Supports InstantSearch.js


InstantSearch.js


Search UI, requires hosted search


Supports InstantSearch.js

Limits

Typesense Algolia ElasticSearch Meilisearch
Maximum Indices No limitation No limitation No limitation 200
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 Not published

Support

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