fairlane.systems

MEILISEARCH · TECH

Meilisearch: fast search engine with AI search mode for hybrid search

Meilisearch is an MIT search engine in Rust. May 2026 v1.10+ with AI search mode (BM25+embedding), developer-friendly, good for search bars with AI snippets.

Researched & fact-checked by: · As of: 2026-05

What is Meilisearch?

Meilisearch is an open-source search engine under MIT license, written in Rust. Started in 2018 by Meilisearch SAS, it positions itself explicitly as alternative to Elasticsearch and Algolia for developers needing fast full-text search without heavy configuration. As of May 2026, version 1.10+ is current. Since version 1.6 (2024), Meilisearch has native vector search; since 1.10 (early 2026), the AI search mode brings BM25 and embedding search as hybrid in a single query.

Meilisearchs identity is explicitly developer-centric. The API is REST with JSON, the documentation is consistently in plain English, the SDK exists for JavaScript/TypeScript, Python, Ruby, PHP, Go, Rust, Java, .NET, Dart, Swift. Setup is in the 60-second range – start the Docker container, set the master key, index documents. Configuration is minimal: typo tolerance, ranking rules, stop words, synonyms – all via JSON settings API, no YAML, no complex schema definitions.

The typical use case is a search bar in a web or mobile app. A user types, Meilisearch delivers relevant hits in under 50 ms, with typo tolerance, synonym resolution, highlight snippets, and facet filters. With AI search mode, a semantic component arrives: queries like "how do I open a Ltd" return hits where the word "open" does not appear, but "found", "register", or "set up" do.

Meilisearch Cloud is the managed variant since 2023, with AWS regions in the USA, Europe (Frankfurt, Ireland), and Asia. Self-hosted runs as single binary on any platform – Mac, Linux, Windows, Docker – and needs neither cluster nor coordinator stack.

For Swiss fiduciary and SME setups, Meilisearch fits a clear profile: search bars in own web apps, semantic filter search across client datasets, AI snippets as UX element. Anyone building a pure RAG pipeline with high embedding quality is better off with Qdrant or pgvector – Meilisearch is the UX layer over the data set, not the deep retrieval backbone.

Why it matters

Many Swiss fiduciary and SME apps need a search function where a user quickly finds a document, client, or file – not a RAG pipeline with long generation latency. A search bar with autocomplete, typo tolerance, and semantic boost is a different requirement than RAG retrieval, with a different optimal tool.

Three properties make Meilisearch strong for this use case. First: latency. Meilisearch delivers search results typically under 50 ms, often under 10 ms – for a search bar with live update on each keystroke (search-as-you-type), that is mandatory. Elasticsearch is often slower here (50-100 ms due to JVM overhead), Qdrant is good but not tuned for interactive search bars.

Second: typo tolerance, synonyms, and highlight out-of-the-box. Meilisearch ships these tools in the API without complex setup phase. A German fiduciary app where users type "Muller" and should hit "Müller", or "MWST" and "Mehrwertsteuer", works directly – no tokenizer configuration, no Lucene analyzers.

Third: AI search mode (since v1.10). A semantic component can be added optionally without UX changes. Searching "how do I open a Ltd" returns hits with "found" and "register" without the developer building a second pipeline. Embedding models are configured via OpenAI, Cohere, HuggingFace, Ollama, or Mistral; an embedder is a JSON entry in settings.

The weakness: Meilisearch is not built for RAG pipelines with long context chunks. Anyone vectorising 8000-token chunks from PDFs and seeking exact recall is better served by a dedicated vector DB. Meilisearchs AI search mode is optimised for short search queries and short document snippets (title, subtitle, a few sentences), not 8000-token chunks.

License MIT – no lock-in, no SaaS-repackaging ban, free forks. For own platforms with Meilisearch as search backend, a pleasant license situation compared to Elasticsearch or Redis.

How it works

Installation: docker run -p 7700:7700 -e MEILI_MASTER_KEY=... getmeili/meilisearch:v1.10. On Linux/Mac via curl installer; on Windows as binary. Persistent data in a mounted volume.

Create an index via POST /indexes with JSON: POST /indexes { "uid": "docs", "primaryKey": "id" }

An index exists immediately; the schema emerges implicitly on first insert. For fiduciary use cases, typically one index per use case (clients, receipts, dossiers).

Add documents via POST /indexes/docs/documents: [ { "id": 1, "title": "Invoice Müller", "content": "Receipt for client 42, April 2026", "client_id": 42, "date": "2026-04-01" }, { "id": 2, "title": "Gas station receipt", "content": "Expenses client 42, gas 80 CHF", "client_id": 42, "date": "2026-04-02" } ]

Meilisearch processes asynchronously via task queue; a task ID returns, status is queryable.

Configure settings – full-text tuning: PUT /indexes/docs/settings { "searchableAttributes": ["title", "content"], "filterableAttributes": ["client_id", "date"], "sortableAttributes": ["date"], "rankingRules": ["words", "typo", "proximity", "attribute", "sort", "exactness"], "synonyms": { "VAT": ["Mehrwertsteuer"], "CO": ["Obligationenrecht"] } }

Filterable and sortable attributes enable facet filters; synonyms resolve domain-specific terms.

Activate AI search mode via embedder: PATCH /indexes/docs/settings { "embedders": { "default": { "source": "openAi", "apiKey": "...", "model": "text-embedding-3-small", "documentTemplate": "Title {{doc.title}} Content {{doc.content}}" } } }

Alternatives: source: "huggingFace" with local model, source: "ollama" with local Ollama endpoint, source: "userProvided" with externally computed vectors.

Search with hybrid: POST /indexes/docs/search { "q": "Müller receipts April", "filter": "client_id = 42", "hybrid": { "embedder": "default", "semanticRatio": 0.5 }, "attributesToHighlight": ["title", "content"], "limit": 10 }

semanticRatio: 0 is pure BM25 search, 1 is pure vector search, 0.5 is mixed. Highlight delivers snippets with marked hit positions – ready for UI use.

Multi-tenant: one index per client or filterableAttributes with client_id. API tenant tokens (since v1.4) allow client-scoped search keys.

Backup via dump API: POST /dumps creates a snapshot of the entire Meilisearch state.

Meilisearch to production in 5 steps

  1. 01Installation: docker run with the getmeili/meilisearch image, set MEILI_MASTER_KEY, persistent volume. Single binary alternatively on a Hetzner server.
  2. 02Create index via API: POST /indexes with uid and primaryKey. Configure settings: searchableAttributes, filterableAttributes, synonyms, stop words.
  3. 03Optional AI search mode: PATCH /indexes/<uid>/settings with embedders configuration. OpenAI, HuggingFace, Ollama, or userProvided depending on data-protection requirement.
  4. 04Ingestion: POST /indexes/<uid>/documents in batches of 1000 documents. Asynchronous via task queue; check status via /tasks/<id>.
  5. 05Backup and monitoring: POST /dumps for full snapshot; Prometheus metrics via /metrics endpoint; observe search latency and index size.

When to use Meilisearch

Meilisearch fits (a) search bars and search-as-you-type functions in web or mobile apps, (b) UX-oriented search with highlight, typo tolerance, and facets, (c) hybrid search for short search queries and document snippets, or (d) internal apps where search UX matters more than deep vector retrieval.

Concrete cases: a fiduciary platform with a search bar across all clients, receipts, and files – user types, instant results with highlight. A knowledge-base app for internal FAQs, where staff type "VAT Q1" and receive semantically matching answers. A document management system where searching for "Müller" also finds "Muller" and "Müller" (Unicode normalisation out-of-the-box).

For web shops with product search, Meilisearch is very strong – an Algolia-equivalent as open source. Facet filters, synonyms, boost rules, pagination are in the standard feature set.

Meilisearch Cloud (managed) has existed since 2023 with AWS regions Frankfurt and Ireland. For DACH customers without TIA overhead, an option. Self-hosted on Hetzner Helsinki/Falkenstein or Infomaniak for strict Swiss hosting – Meilisearch is a single binary that runs on 2 GB RAM. A CHF 5 Hetzner CX11 instance suffices for medium search workloads.

Combination with RAG: Meilisearch can serve as initial retrieval layer in a RAG pipeline, with a dedicated vector DB as deep retrieval layer. Search bar finds relevant documents quickly, RAG pipeline works on the pre-filtered set. This two-stage architecture fits platforms where UX and deep AI answers both matter.

When not to use

For pure RAG pipelines with long context chunks (4000-8000 tokens), Meilisearch is not the ideal tool. The AI search mode is tuned for search UX, not high-precision embedding retrieval. Anyone vectorising 100,000 PDF chunks and needing accurate semantic recall is better off with Qdrant, Weaviate, or pgvector.

For very large data volumes (> 10M documents), Meilisearch becomes expensive in RAM consumption. Full-text index plus vector index both in RAM cost 4-8 GB per 1M documents. At 100M documents, Elasticsearch or Milvus is the more economical choice.

When the use case needs complex multi-signal ranking pipelines with ML models (cross-encoder as second phase, tensor operations, multi-vector ranking), Vespa is the better path. Meilisearch has ranking rules but no tensor algebra.

For multi-modal with image embeddings, Meilisearch is not set up. Vector search exists, but primarily for text embeddings. Anyone searching images in the same index goes to Weaviate or custom embedding pipelines with Qdrant.

For log analysis or time-series search, Elasticsearch is the more mature choice. Meilisearch has no aggregation pipelines for logs, no time-series indexes.

When the team already has Algolia experience and seeks a managed service with the same feature set: Algolia is proprietary, has similar API structure, but no self-host option. Meilisearch is the open-source alternative; a path switch is not possible without code adaptation.

Trade-offs

STRENGTHS

  • MIT license – no lock-in, no SaaS-repackaging ban
  • Setup in 60 seconds, single binary without cluster complexity
  • Very low latency under 50 ms for search-as-you-type
  • AI search mode with hybrid BM25+embedding since v1.10

WEAKNESSES

  • Not optimised for long RAG chunks – AI mode is UX-search focused
  • Scales to 10+ million documents expensively in RAM consumption
  • No tensor ranking or cross-encoder models like Vespa
  • Multi-modal with image embeddings not set up

FAQ

How does Meilisearch differ from Algolia?

Meilisearch is MIT open-source and self-hostable; Algolia is proprietary, cloud-only. Feature sets overlap about 80% – search-as-you-type, typo tolerance, facets, synonyms. Algolia has more enterprise features (personalisation, A/B testing); Meilisearch has native hybrid search via AI search mode since 1.10. Pricing very different: Algolia from USD 50/month cloud-only, Meilisearch free self-hosted or Meilisearch Cloud from USD 30/month.

Which embedders does Meilisearch v1.10 support?

As of May 2026: OpenAI (text-embedding-3-small/large), Cohere, HuggingFace (any sentence-transformers model), Ollama (local models via Ollama server), Mistral AI, REST (generic HTTP endpoint), userProvided (externally computed vectors). For Swiss fiduciary work with data-protection needs: Ollama or HuggingFace local.

How much RAM does Meilisearch need?

Rule of thumb: about 2-4 GB RAM per 1M documents at moderate field sizes. With AI search mode plus 1536-dim vectors, an extra 6 GB per 1M vectors. A five-person fiduciary setup with 100,000 documents plus full text and vectors runs comfortably on 4 GB RAM. At 10M documents, plan 32-64 GB RAM.

Related topics

QDRANT · TECHQdrant: production vector database for RAG and semantic searchVECTOR DATABASES · COMPARISONVector databases compared: 10 options for RAG, search, and recommendationRAG · AI CONCEPTRetrieval-Augmented Generation (RAG): how AI answers from your own documentsEMBEDDINGS · AI CONCEPTEmbeddings and vectors: how language becomes mathematicsHYBRID SEARCH · AI CONCEPTHybrid search: BM25 plus vectors with reciprocal rank fusion in Elasticsearch, Qdrant, OpenSearchRAG ON YOUR OWN KNOWLEDGE · SERVICERAG on your own knowledge: answers from your documents – with sources, not made up

Sources

  1. Meilisearch documentation – AI search, embedders, settings · 2026-05
  2. meilisearch/meilisearch – GitHub releases v1.10+ · 2026-05
  3. Meilisearch Cloud pricing and regions · 2026-05
  4. Meilisearch blog – AI search mode and hybrid search · 2026-04

FITS YOUR STACK?

What this looks like in your business – a 30-minute intro call.

Book a call