95 lines
4.3 KiB
Markdown
95 lines
4.3 KiB
Markdown
---
|
|
title: Meilisearch
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, search, self-hosted, rust]
|
|
confidence: high
|
|
contested: false
|
|
sources:
|
|
- https://www.meilisearch.com
|
|
- https://github.com/meilisearch/meilisearch
|
|
---
|
|
|
|
# Meilisearch 🔍
|
|
> Moteur de recherche ultra-rapide, tolérant aux fautes de frappe, conçu pour offrir une expérience « Google-like » dans vos apps.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://www.meilisearch.com |
|
|
| **GitHub** | https://github.com/meilisearch/meilisearch |
|
|
| **License** | MIT |
|
|
| **Langage** | Rust |
|
|
| **Étoiles** | 58 007 |
|
|
| **Dernière MAJ** | 2026-06-05 |
|
|
| **Catégorie** | [[cat-search]] |
|
|
|
|
## Description
|
|
Meilisearch est un **moteur de recherche full-text** écrit en Rust, conçu pour ingérer des millions de documents et répondre en moins de 50 ms. Il se distingue d'Elasticsearch par sa **simplicité radicale** : pas de cluster à configurer, pas de JVM à tuner, pas de mappings verbeux. Une seule image Docker, une API REST claire, et c'est en ligne.
|
|
|
|
L'algorithme interne combine un **index inversé maison** avec une recherche typo-tolérante (1-2 fautes acceptées), des synonymes configurables, des facettes, du filtrage par attributs, de la recherche géolocalisée et du **reranking par pertinence customisable**. Les SDK officiels couvrent plus de 30 langages (JS, Python, Go, Rust, PHP, Ruby, Java, Swift, Kotlin, etc.).
|
|
|
|
Meilisearch est utilisé en production par des startups et grands comptes (Leboncoin, Photoshot, Linagora) pour alimenter la recherche d'e-commerce, de documentation, de SaaS, de wikis ou d'archives. Sa version Cloud est optionnelle : l'auto-hébergement reste 100 % fonctionnel et gratuit.
|
|
|
|
## Installation
|
|
### Docker Compose
|
|
```yaml
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:v1.10
|
|
container_name: meilisearch
|
|
environment:
|
|
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
|
|
- MEILI_NO_ANALYTICS=true
|
|
- MEILI_ENV=production
|
|
- MEILI_HTTP_ADDR=0.0.0.0:7700
|
|
- MEILI_DB_PATH=/meili_data
|
|
volumes:
|
|
- ./data:/meili_data
|
|
ports:
|
|
- "7700:7700"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.meili.rule=Host(`search.example.com`)
|
|
- traefik.http.routers.meili.entrypoints=websecure
|
|
- traefik.http.routers.meili.tls.certresolver=letsencrypt
|
|
- traefik.http.services.meili.loadbalancer.server.port=7700
|
|
restart: unless-stopped
|
|
```
|
|
|
|
### binaire
|
|
```bash
|
|
curl -L https://install.meilisearch.com | sh
|
|
./meilisearch --master-key=YOUR_KEY
|
|
```
|
|
|
|
## Configuration
|
|
1. Démarrer le conteneur et générer une **clé maître forte** (32 caractères minimum) stockée dans `.env`.
|
|
2. Créer un **index** via l'API : `curl -X POST 'http://localhost:7700/indexes' -H 'Authorization: Bearer ...' -d '{"uid":"products","primaryKey":"id"}'`.
|
|
3. Configurer les **réglages de recherche** (`searchableAttributes`, `filterableAttributes`, `sortableAttributes`, `rankingRules`).
|
|
4. Indexer vos documents : `POST /indexes/products/documents` avec un tableau JSON.
|
|
5. Activer l'**interface Meilisearch Insights** ou un front tiers (InstantSearch, DocSearch) pour visualiser les requêtes.
|
|
|
|
## Alternatives
|
|
- **Open source** : Typesense (similaire, Java), Elasticsearch / OpenSearch (distribué, JVM), Sonic (léger, C), Manticore Search (C++), Apache Solr, ZincSearch (Go, single binary), Bleve (Go in-process).
|
|
- **Propriétaire** : Algolia (référence SaaS, payant), Coveo, Constructor.io, Elastic Cloud, Amazon CloudSearch.
|
|
|
|
## Sécurité
|
|
- **Clé maître obligatoire** en production : génère des API keys à权限 fine (admin, search, scoped).
|
|
- **Tenant tokens** pour isoler les recherches par utilisateur côté frontend.
|
|
- **Pas de télémétrie** par défaut si `MEILI_NO_ANALYTICS=true`.
|
|
- **Chiffrement TLS** via reverse proxy (Traefik, Caddy) — Meilisearch ne fait pas de HTTPS en natif.
|
|
- **Snapshots automatiques** sur disque, exportables pour sauvegarde hors-ligne.
|
|
|
|
## Ressources
|
|
- Code : https://github.com/meilisearch/meilisearch
|
|
- Documentation : https://www.meilisearch.com/docs
|
|
- Playground : https://cloud.meilisearch.com
|
|
- Issues : https://github.com/meilisearch/meilisearch/issues
|
|
|
|
## Pages Liées
|
|
- [[cat-search]] — Catégorie parente
|
|
- [[app-searxng]] — Méta-moteur de recherche Web
|
|
- [[app-whoogle]] — Front-end Google sans tracking
|
|
- [[recettes-docker-compose]] — Modèles de stacks
|