background

Compare Algolia vs ElasticSearch
vs Meilisearch vs Typesense

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

TypesenseAlgoliaElasticSearchMeilisearch
Source CodeFully open sourceProprietary closed sourceSource-available, licensed under SSPLFully open source
First Commit2015201220102018
Built UsingC++C++JavaRust
Core Search AlgorithmBuilt from the ground-upBuilt from the ground-upBuilt on top of LuceneBuilt 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 use cases that don't require a highly-available fault-tolerant setup. Recommends providing enough RAM to hold entire dataset in RAM for ideal performance.
Primary Index LocationRAMRAMDisk, with RAM cacheDisk with Memory Mapped files

Deployment

TypesenseAlgoliaElasticSearchMeilisearch
Self-Hosted Option
SaaS Option
High Availability /
Fault Tolerance


RAFT-based multi-node clustering


RAFT-based multi-node clustering


Active-passive replication


Only supports a single-node setup, which creates a single point of failure and so is not fault tolerant / production-ready.
GPU Acceleration Support

Can optionally use a GPU when available.


Can optionally use a GPU when available.
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
None. Self-contained binary.

Built-in high performance HTTP server, that can be exposed to the frontend directly. Recommends use of nginx, apache or the like as a reverse proxy in front, to manage the renewal of the SSL certificate
Index Backward Compatibility

Fully backward compatible
N/A

As a SaaS service, Algolia does not expose this detail to end users.


Backward compatible up to 1 major version.


Fully backward compatible
Upgrade PathReplace binary, restart process.Managed SaaS service, doesn't require upgrades. Replace binary, restart process. Re-indexing required if upgrading more than 1 major version. Replace binary, restart process with upgrade option.

Features

TypesenseAlgoliaElasticSearchMeilisearch
REST API
Typo Tolerance

But slow and affects relevance
Query Field Weights &
Boosting
🔶

Partially through ranking rules reordering, numeric weights are not supported
🔶

Partially sypported through ranking rules reordering, numeric weights are not supported
Scoped API Keys &
Multi-tenant indices
Federated Multi-Index Search
Grouping / Distinct

Upto one distinct field
🔶

Upto one distinct field, no support for grouping
JOINs across multiple indices
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
Ranking on Filter Scores
Facet Value Searches
Result Pinning / Merchandising

Upto 10 results in Free Tier, Upto 10,000 results in Premium Tier


Available only in closed-source version
Synonyms

Upto 10,000 per index
Dynamic Synonym Suggestions

Available in Premium Tier
Language supportAll languagesAll languagesAll languagesAll languages
Stop words
Stemming
Geo Search

Supports multiple geopoints and geo-polygons


Limited to one geo point per document


Limited to one geo point per document
Automatic Record ID generation

IDs needs to be pre-generated
Sort by String field

Up to 3 tie-breaking sort fields per search query


But not recommended
Search AnalyticsClient-side and Server-sideClient-side and Server-side

Only through the cloud offering
Record Schema Validations

with coerced mapping
Schemaless

Automatic schema detection needs to be enabled.


with coerced mapping
Custom Ranking Rules
Negative Keyword Search
(-query)
Phrase Search
("some query")
Vector Search
(Nearest-Neighbor Search)
Semantic Search

Called NeuralSearch
Similarity Search
Image Search

Built-in integration with CLIP for object detection
Voice Search

Built-in integration with Whisper for audio clip transcription
Conversational Q&A Search

Built-in RAG pipeline and integration with OpenAI and Cloudflare-hosted LLMs
Recommendations

Not out-of-the-box, but can be implemented using Vector Search


Not out-of-the-box, but can be implemented using Vector Search


Not out-of-the-box, but can be implemented using Vector Search
User-level Search Personalization

Not out-of-the-box, but can be implemented using Vector Search.


Premium Tier


Not out-of-the-box, but can be implemented using Vector Search
Collection Aliases
Collection Swapping
A/B Testing Results

Can be implemented by swapping collections and search parameters based on AB Test Bucket


Premium Tier


Can be implemented by swapping collections and search parameters based on AB Test Bucket


Can be implemented by swapping collections and search parameters based on AB Test Bucket
Query Suggestions
Visual Dashboard

In Typesense Cloud


3rd party plugins


Search only in OSS and more features on Meilisearch Cloud
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


Forked version of InstantSearch.js
Privacy Friendliness

Does NOT collect usage analytics or personal data 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 hardware information, total number of documents, number of document updates, server uptime, search settings, etc. Opt-out supported.

Limits

TypesenseAlgoliaElasticSearchMeilisearch
Number of DocumentsNo limitation, only constrained by available RAMUnknown No limitation, only constrained by available disk space No limitation, constrained by available disk space and performance is constrained by available RAM.
Maximum Number of IndicesNo limitationNo limitationNo limitationNo limitation
Maximum Index SizeNo limitation, only constrained by available RAM128 GBNo limitationNo limitation, only constrained by available disk
Maximum Words per fieldNo limitationNo limitationNo limitationNo limitation
Maximum Record SizeNo limitation10KBNo limitationNo limitation
Number of API KeysNo limitation5000No limitationNo limitation

Support

TypesenseAlgoliaElasticSearchMeilisearch
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 Discord Community
Phone
Private Slack
Paid Prioritized Support
Support Hours24 x 7 x 365
for Paid Prioritized Support
Mon-Fri; Business Hours
9am-5pm in user timezone
for Paid Prioritized Support
24 x 7 x 365
for Platinum and Enterprise Prioritized Support
Standard: Mon-Thu; 8am - 10pm Paris Time.
Paid Prioritized Support: 24 x 7 x 365
Expert Onboarding & Training

Through Paid Support


Through Paid Support
background