Initial vault setup
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user