Aller au contenu

Moteur de recherche Typesense

Typesense est un moteur de recherche open source, tolérant aux fautes de frappe et optimisé pour offrir des résultats quasi instantanés (généralement en moins de 50 ms).

C’est une alternative open source à Algolia, sans ses limitations, et également une solution plus simple à mettre en œuvre qu’ElasticSearch.


📦 Prérequis

  • Docker et Docker Compose doivent être installés et configurés sur votre environnement.

⚙️ Configuration de Typesense

Afin que Maarch Courrier puisse communiquer avec Typesense, plusieurs variables d’environnement doivent être définies.


1. Principe général

Typesense peut être déployé en mode cluster, c’est-à-dire sur plusieurs nœuds (serveurs), afin d’assurer la haute disponibilité et la répartition de la charge. 👉 Pour plus de détails, consultez la documentation officielle : Choosing Number of Nodes


2. Variables communes au cluster

Ces variables sont partagées par l’ensemble des nœuds :

Variable Description
TYPESENSE_API_KEY Clé API utilisée pour l’authentification auprès du cluster.
TYPESENSE_CONNECTION_TIMEOUT_SECONDS Délai maximal (en secondes) avant expiration d’une tentative de connexion.

3. Variables propres à chaque nœud

Chaque nœud du cluster doit être défini individuellement, en suffixant les variables par un index numérique (_1, _2, _3, etc.) :

Variable Description
TYPESENSE_NODE_HOST_<index> Nom d’hôte ou adresse IP du nœud.
TYPESENSE_NODE_PORT_<index> Port du nœud (8108 pour HTTP, 443 pour HTTPS).
TYPESENSE_NODE_PROTOCOL_<index> Protocole de communication (http ou https).

4. Exemple de configuration

TYPESENSE_API_KEY: "Hu52dwsas2AdxdE"        # Clé API Typesense
TYPESENSE_NODE_HOST_1: "typesense"          # Hôte du nœud 1
TYPESENSE_NODE_PORT_1: "8108"               # Port du nœud 1 (HTTP)
TYPESENSE_NODE_PROTOCOL_1: "http"
TYPESENSE_NODE_HOST_2: "typesense"          # Hôte du nœud 2
TYPESENSE_NODE_PORT_2: "8108"
TYPESENSE_NODE_PROTOCOL_2: "http"
TYPESENSE_CONNECTION_TIMEOUT_SECONDS: "2"   # Timeout en secondes