Objectif
Installer et configurer Elasticsearch 7.6 pour activer la recherche dans Magento 2
Installation
Composants indispensables
Pour fonctionner Elasticsearch a besoin de Java. Je vous invite à suivre les étapes ci-dessous pour lancer l’installation :
apt install default-jre
Vérifier l’installation en lançant la commande :
, le résultat doit être :java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
Puis, installer le JDK :
apt install default-jdk
Vérifier en lançant la commande : javac --version
, le résultat doit être :
javac 11.0.9.1
Installation de Elasticsearch
apt-get install gnupg2 apt-transport-https
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt-get update && apt-get install elasticsearch=7.6.2
J’ai précisé la version d’Elasticsearch car le module de recherche de Magento 2 ne fonctionne qu’avec la version 7.6.2.
Vérifier si Elasticsearch est actif en lançant cette commande : systemctl status elasticsearch
.
Si besoin, il faut activer et lancer le service Elasticsearch :
systemctl enable elasticsearch && systemctl start elasticsearch
Configuration
Avant de lancer le service, nous allons éditer le fichier de configuration d’Elasticsearch :
nano /etc/elasticsearch/elasticsearch.yml
Vous trouverez, ci-dessous, les modifications que j’ai apportées au fichier de configuration :
node.name: e76-1
cluster.name: e76-m2
network.host: _eth0_
http.port: 9200
discovery.seed_hosts: ["e76-1"]
cluster.initial_master_nodes: ["e76-1"]
Voici le détail du mon fichier de configuration :
node.name
: ce paramètre est libre, il correspond au nom du noeud. Pour me retrouver, j’ai ajouté un-1
pour préciser que ce serveur correspond au premier noeud Elasticsearch. Cela sera utile si je souhaite créer un cluster.cluster.name
: ce paramètre est également libre, il correspond au nom du cluster. Pour créer un cluster, il faut indiquer un nom de cluster.network.host
: il est important de configurer ce paramètre dès l’installation car, par défaut, Elasticsearch écoute seulement sur l’adresse 127.0.0.1. Pour ma part, j’ai choisi d’écouter l’interface réseau. Si vous souhaitez plus d’informations sur la configuration, je vous invite à consulter la documentation, lien vers la documentation.http.port
: Ce paramètre permet de modifier le port d’écoute d’Elasticsearch.discovery.seed_hosts
: ce paramètre est un tableau d’adresses IP ou de noms d’hôtes. Il est nécessaire pour rejoindre un cluster car chaque noeud doit connaître tous les noeuds d’un même cluster.cluster.initial_master_nodes
: ce dernier paramètre est un tableau qui permet de définir le ou les noeuds master d’un cluster, lien vers la documentation.
Avant d’enregistrer et de fermer le fichier, n’oubliez pas de modifier e76-1
vers l’URL de votre serveur Elasticsearch.
Relancer le service : systemctl restart elasticsearch
.
Résultat
Pour contrôler que le serveur fonctionne correctement, je vous invite à lancer la commande : curl http://e76-1:9200
, en remplaçant e76-1
par l’URL de votre serveur.
Vous devriez avoir le résultat :
{
"name" : "e76-1",
"cluster_name" : "e76-m2",
"cluster_uuid" : "2viH6nrASiS7ogaEtFTaHg",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Tutoriel publié le 27/03/2021.