cloudparts

Meilisearch

A search engine in one Rust binary with a REST API: typo-tolerant, search-as-you-type results with sensible defaults, plus vector and hybrid search.

What it is
Search indexes
Type
Open source
Made by
Meili SAS
License
Community Edition: MIT. Enterprise Edition features (sharding, replication and a few others): Business Source License 1.1, free outside production, turning MIT four years after each release
Facts checked
24 October 2026

What it is

Meilisearch is a single binary that serves a REST API, by default on port 7700. You create an index, send it JSON documents with a primary key, declare which attributes can be filtered and sorted, and search. Defaults aim at search boxes on sites and apps: prefix matching as the user types, one typo allowed in words of five or more characters and two from nine, and a fixed set of ranking rules applied as a bucket sort. Each rule (words, typo, proximity, attribute rank, sort, word position, exactness) only breaks ties left by the ones before it. Tenant tokens, short-lived JWTs that carry a filter such as user_id = 123, let each user search only their own documents.

Every write becomes a task in a queue. Tasks run in order, consecutive compatible tasks on the same index are batched, and each one ends as succeeded, failed (with no changes made) or canceled, so an import is searchable once its task finishes, not when the request returns. Data sits in LMDB, a memory-mapped key-value store: it works when the index is larger than RAM, but runs best when it fits, and deleted documents don’t give disk space back to the operating system.

Since v1.13 (February 2025), AI-powered search is stable: an index can hold vectors, either sent with the documents or generated by a configured embedder such as OpenAI or Hugging Face, and a hybrid query mixes keyword and semantic results by a semanticRatio. One instance is one node. Sharding an index across instances, and replicating shards, is part of the Enterprise Edition, under a separate licence. Meili SAS also sells Meilisearch Cloud, billed by usage or by instance size, in nine regions.

Why teams pick it

  • Good results with no tuning: typo tolerance, prefix search and ranking rules are on by default
  • Small to operate: one binary, one data directory, a REST API and official client libraries
  • Keyword, vector and hybrid search in one index, with embedders that generate vectors from your documents
  • Multi-tenant search from the front end through tenant tokens that carry each user’s filter

Watch out for

  • Sized for one node: sharding and replication across instances need the Enterprise Edition and a commercial licence in production
  • Only the first 10 query words count, and a search returns at most 1,000 hits by default (maxTotalHits), so it doesn’t suit deep paging or exports
  • Writes are asynchronous tasks, and large imports block later writes to the same queue until they finish
  • LMDB doesn’t shrink: the database grows over time, and performance drops when the index no longer fits in memory or sits on slow disks

Good for

Data model
JSON documents with a primary key, in indexes
Query language
Search parameters: query, filter, sort, hybrid
Client protocol
REST API over HTTP (port 7700)
Consistency
Writes are queued tasks, searchable once the task succeeds
How it scales
One node; sharding and replication in the Enterprise Edition
Storage engine
LMDB, a memory-mapped key-value store
Written in
Rust
Ways to run it
Self-hosted binary, or Meilisearch Cloud in nine regions
Pricing model
Cloud: by usage or by instance size

Alternatives

What all search indexes have in common →Compare side by side →

Start an instance, add documents, then search with a typo · bash

curl -L https://install.meilisearch.com | sh
./meilisearch --master-key="aSampleMasterKey"     # listens on localhost:7700

# writes are queued: the response holds a taskUid, not a result
curl -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
  -H 'Content-Type: application/json' -H 'Authorization: Bearer aSampleMasterKey' \
  --data-binary @movies.json
curl 'http://localhost:7700/tasks/0' -H 'Authorization: Bearer aSampleMasterKey'

# “botman” still finds the Batman films
curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' -H 'Authorization: Bearer aSampleMasterKey' \
  --data-binary '{ "q": "botman" }'

See it in a real stack

No architecture uses Meilisearch yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2019–2026

Quentin de Quelen, Clément Renault and Thomas Payet had built search for large e-commerce companies and were dissatisfied with the search tools on the market. De Quelen later summed up the goal as Algolia’s performance and relevance with Elasticsearch’s capacity for customisation. They founded the company in Paris in 2019 and released the engine as open source in 2020.

A first prototype in Go proved the idea but hit performance limits; the team blamed garbage collection. Renault had used Rust since its first stable release, so they rewrote the engine in Rust, moving storage from RocksDB to LMDB after read performance problems. Version 1.0 in February 2023, after three years of development, promised no breaking changes until the next major version.

The company raised a $15 million Series A in October 2022 to build Meilisearch Cloud. A vector store arrived in v1.3 in 2023 and became stable AI-powered search in v1.13 in February 2025. In August 2025, with v1.19, Meilisearch split into an MIT Community Edition and an Enterprise Edition under the Business Source License, which holds sharding and other features aimed at large deployments.

Why it’s built this way

Rust instead of Go or C++
The Go prototype was slowed by garbage collection, and the team found C++ harder to keep safe and maintain. Rust gave the speed of C++ with checked memory safety.
LMDB for storage
The first versions used RocksDB, but reads were slow through its Rust wrapper. LMDB, a transactional memory-mapped store, reads straight from the map without copying.
Relevance that works without configuration
The founders wanted any developer to get a good search box quickly, so typo tolerance, prefix search and a pre-configured set of ranking rules are on from the first request.
An open core with a source-available enterprise edition
Large companies that self-host, one of them on more than 200 servers, needed sharding and other enterprise features; selling those under BUSL funds the MIT-licensed engine everyone else uses.

Timeline

  1. 2019

    Meilisearch founded in Paris

  2. 2020

    Engine released publicly as open source

  3. 2022

    $15M Series A to build Meilisearch Cloud

  4. 2023

    Version 1.0 in February; vector store in v1.3

  5. 2025

    AI-powered search stable in v1.13; Enterprise Edition under BUSL with v1.19 in August

  6. 2026

    Version 1.55 released in October

Sources14 · facts checked 24 October 2026

Improve this page on GitHub