mrkeyoor.com_
Wed 16 Sept 05:28 UTC
Dataevaluationupdated 27 Aug 2026

meilisearch review

Meilisearch is a search server that applications call over HTTP after sending it their documents. It handles full-text, typo-tolerant, filtered, faceted, geographic, semantic, and hybrid search without requiring an application team to build its own index and ranking engine.

+59stars / 7d
Verdict

Our Meilisearch build succeeded in 551 seconds, but 887 of 993 tests failed in the following 703-second run, so this commit needs investigation before source-based deployment. The product remains a good shortlist candidate for application search when one HTTP service is preferable to a full search cluster. Trial it with real relevance queries, restart and restore drills, and production-sized geo or vector workloads before choosing it.

We ran it

Lab card: what happened when we ran meilisearchScreenshot of meilisearch (www.meilisearch.com)
Install✓ · 45s784 packages
Build✓ · 551s
Tests✗ · 703s106 passed · 887 failed of 993 (cargo test)
Repo1734 files~262,255 lines of source · 33.1 MB · 16 CI workflows · Dockerfile

Answers from our run

Does meilisearch build from source?

Dependencies installed in 45 seconds (784 packages), and the build succeeded in 551 seconds. We cloned commit 577f7af into a clean Debian container with 3 CPUs and no project-specific setup.

Do meilisearch's tests pass?

Not all of them: 106 of 993 passed and 887 failed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use meilisearch?

Teams that need community-edition sharding or S3-streaming snapshots: the README places those in the Enterprise Edition, which is not allowed in production without a commercial agreement.

What are the alternatives to meilisearch?

Typesense, OpenSearch, Algolia. Our Meilisearch build succeeded in 551 seconds, but 887 of 993 tests failed in the following 703-second run, so this commit needs investigation before source-based deployment.

Setup3/5Published server is approachable; source build took 551 seconds
Docs5/5API, ranking, security, operations, and SDK guides are extensive
Community5/559,102 stars with active August 2026 pushes and issue work
Maturity3/5Established releases, but our integration suite failed heavily

Discussed on

  1. hnMeilisearch 1.0 – Open-source search engine built in Rust448 points
  2. hnMeiliSearch: Zero-config alternative to Elasticsearch, made in Rust437 points
  3. hnMeiliSearch: A Minimalist Full-Text Search Engine315 points
  4. hnMeilisearch – search engine API bringing AI-powered hybrid search151 points
  5. hnMeilisearch expands search power with Arroy's filtered disk ANN75 points

Who it’s for

Product teams adding fast search, filters, facets, and typo tolerance to a website or app.
Developers who want a direct HTTP API and maintained SDKs instead of operating a larger search cluster.
Teams that can tune index settings against real queries and keep the source database authoritative.
Self-hosters prepared to manage persistent index data, API keys, snapshots, upgrades, and reindexing.

Who it’s NOT for

Teams that need community-edition sharding or S3-streaming snapshots: the README places those in the Enterprise Edition, which is not allowed in production without a commercial agreement.
Operators who expect a clean integration suite from a plain Rust container: our run ended with 887 failed tests out of 993.
Large geo-search users who cannot reproduce workload behavior before launch: issue 6596 reports concurrent geo-sorted searches exhausting memory on an 11.2-million-document index.
Applications that cannot rebuild search state from a source database; indexing settings and version changes can require operational recovery or reindexing.

Setup reality

Our Rust sandbox installed 784 packages in 45 seconds. The build succeeded in 551 seconds, then tests exited 101 after 703 seconds: Cargo reported 106 passed, 887 failed, and 9 ignored out of 993. The log tail names the meilisearch integration target and many vector tests but does not state a cause.

A running server needs persistent database storage, a master key, scoped search and admin keys, index settings, and a process or container supervisor. Semantic and conversational features can also require embedders, model credentials, or user-provided vectors.

The 33.1 MB Rust checkout had 1,734 files and about 262,255 source lines. Community Edition is MIT licensed, while sharding and S3-streaming snapshots belong to Enterprise Edition under separate production terms. Telemetry is on by default and can be disabled.

One HTTP service covers common product-search needs

Meilisearch accepts JSON documents, builds indexes, and answers search requests over a REST API. Its settings cover searchable attributes, ranking rules, synonyms, stop words, filters, facets, sorting, geographic data, and typo tolerance. Applications keep their own database as the record of truth and send searchable copies to Meilisearch. That division is lighter than teaching every product developer the internals of a distributed search cluster.

The README also documents semantic and hybrid search, personalization, conversational answers, document relations, tenant tokens, and search rules. Hybrid search needs an embedder and a balance between keyword and vector results. Multi-tenant use needs filters and scoped tokens that cannot expose another tenant's documents. Search quality comes from a judged query set, not from turning on every setting.

The source build passed after 551 seconds

We checked out commit 577f7af into a fresh Rust Debian container with 3 CPUs and 12 GB of RAM. The repository had 1,734 files, roughly 262,255 source lines, and occupied 33.1 MB. Installing its 784 packages took 45 seconds. The build then succeeded in 551 seconds. Sixteen CI workflow files and a Dockerfile were present, while our scan found no top-level tests directory.

Most users will run a release binary, official container, or Meilisearch Cloud instead of compiling the server. Source contributors should still care about the 9-minute compile. Build caching changes repeat runs, but a clean CI worker pays the full dependency and compiler cost. Pin the server version because index formats, settings, and client behavior can matter during an upgrade.

What happened when we ran it

Our test command exited 101 after 703 seconds. Cargo reported 106 passed and 887 failed out of 993, with 9 ignored. The final line says to rerun -p meilisearch --test integration, and the tail lists failures in vector REST and settings cases, including embedder updates, Ollama URL checks, mismatched dimensions, and user-provided vectors. Installation and compilation still succeeded.

The tail does not show a shared exception, missing system library, or failed service that explains the 887 failures. Assigning a cause would be speculation. commit 577f7af did not pass its integration target in our unprivileged sandbox. A team building from source should reproduce the command in its own image and identify the first full failure before relying on this checkout.

Relevance needs a test set drawn from your users

Meilisearch includes typo tolerance, prefix matching, facets, synonyms, and configurable ranking. None provides a universal ranking. A catalog may rank availability above text proximity, while documentation search may favor exact headings and recent versions. Build a list of real queries, expected top results, zero-result cases, misspellings, filters, and permission boundaries. Re-run it after changing searchable attributes, stop words, synonyms, embedders, or the server release.

Issue 6591 reports a hybrid ranking-score change after adding a searchable attribute whose value was null in affected documents. Issue 6600 reports stale word-count data after changing stop words during reindexing. These specific reports do not prove every installation is affected. They show that settings can change indexed state and ranking in ways a health endpoint will not detect.

Community Edition omits two scale features

The README splits the product into Community and Enterprise editions. Community Edition is MIT licensed and contains the core full-text, semantic, and hybrid search engine. Sharding and S3-streaming snapshots are listed under Enterprise Edition. Its commercial or Business Source License terms prohibit production use without a commercial agreement. A buyer expecting those capabilities should price that boundary before designing around them.

A single Community Edition node still concentrates storage and availability in one service. Persistent volumes, dumps, restore drills, master-key handling, and an indexing replay path belong in the initial deployment. Release 1.53.1, published August 13, 2026, added an experimental environment setting for the maximum number of task-queue LMDB readers. Change it only with observed queue behavior.

Geo and vector workloads need production-sized trials

Issue 6596 describes official v1.53.1 and v1.52.3 containers being killed during concurrent geo-sorted searches on about 11.2 million documents. The reporter measured a large per-query memory rise and traced it to repeated R-tree deserialization. Issue 6572 separately reports native crashes on Linux AArch64 during concurrent federated-search formatting and indexing, without a standalone reproduction. Both concern defined workloads, not ordinary text search everywhere.

Semantic search adds an external dependency when Meilisearch obtains embeddings from a model service. User-provided vectors make dimensions, model version, and reindex strategy the application's responsibility. Our failed suite included many vector-named tests, though the log does not connect them to one cause. Exercise the chosen embedder, bulk indexing, and restore process with production-shaped data and concurrency.

August 2026 activity supports a serious evaluation

GitHub showed 59,102 stars, 318 combined issues and pull requests, and a last push on August 26, 2026. Version 1.53.1 arrived 13 days earlier. That is active maintenance; it does not cancel our failed integration result. The user documentation covers APIs, ranking, security, SDKs, deployment, and editions, while issue 3206 argues that internal code documentation remains thin for contributors.

Meilisearch suits a product team that wants good search controls without owning a large cluster. The 45-second install and successful build made the code obtainable, but 887 failed tests prevent an unqualified source-health endorsement. Treat the edition boundary as an architecture decision, then prove relevance, isolation, memory use, and restore behavior against your own corpus.

Alternatives

ProjectWhat it isPick it when
Typesense gh↗A search server focused on typo-tolerant application search through an HTTP API.pick this instead when its clustering, ranking model, and operating requirements fit your dataset better.
OpenSearchA distributed search and analytics engine with a much larger operating surface.pick this instead when distributed analytics, complex queries, and cluster scale outweigh setup simplicity.
AlgoliaA hosted search service with managed indexing infrastructure and client libraries.pick this instead when a managed service and vendor support matter more than owning the server.

Sources

  1. Meilisearch repository and README
  2. Meilisearch v1.53.1 release notes
  3. Concurrent geo search memory issue
  4. Hybrid ranking score issue
  5. Stop-word reindexing issue

More data reviews

GeoLibre · TradingView-API · os-taxonomy · Lean · bokeh · orm · the whole board →