Installer le serveur Elasticsearch pour Magento 2
Elasticsearch est un moteur de recherches et de performances distribué en temps réel qui vous permet d'étudier vos données très rapidement. Il est utilisé pour des recherches plein-texte, structurées, pour les analyses ainsi que pour les trois à la fois.
Cet outil regroupe toutes ces fonctionnalités sur un serveur autonome avec lequel votre application peut communiquer via une API RESTful, en utilisant un client web via un langage de programmation ou encore en ligne de commande.
L'extension Improved Search va vous permettre de faire le lien entre le moteur de recherche et Magento 2.
Vous pouvez trouver plus d'informations sur le produit ici :
Installer et exécuter le serveur Elasticsearch
Comme le conseille Elastic, "le meilleur moyen de voir ce qu'Elasticsearch peut faire pour vous c'est de le tester".
Afin de pouvoir utiliser l'extension Improved Search et accéder au serveur, vous devez avant tout avoir une version récente de Java. Vous pouvez facilement installer la dernière version de Java depuis www.java.com.
Ensuite, vous allez pouvoir installer et exécuter le moteur Elasticsearch en suivant les quelques étapes ci-dessous.
Installer Elasticsearch
Vous pouvez maintenant télécharger la dernière version d'Elasticsearch depuis elastic.co/downloads/elasticsearch.
Exécuter Elasticsearch
Afin d'exécuter Elasticsearch, ouvrez une nouvelle console et exécutez la commande suivante :
cd elasticsearch-<version>
./bin/elasticsearch
Si vous exécutez Elasticsearch sur Windows, utilisez simplement la commande suivante:
bin\elasticsearch.bat
Tester Elasticsearch
Vous pouvez facilement tester si Elasticsearch est accessible en tentant d'accéder à l'adresse http://localhost:9200/?pretty ou en ouvrant une nouvelle console et en exécutant :
curl 'http://localhost:9200/?pretty'
Vous devriez obtenir:
Elasticsearch est alors en cours d'exécution.
Configurer le Core Elasticsearch
Vous pouvez configurer le Core Elasticsearch comme vous le souhaitez depuis la configuration Magento dans :
StoreSWyomindElasticsearch Core
Activer les logs
L'extension est fournie avec des logs pour vous aider à vérifier les requêtes en frontend, la réindexation et le statut du serveur Elasticsearch.
Activer les logs sur les requêtes
Un fichier log est créé pour les requêtes en frontend :
var/log/Wyomind_ElasticsearchCore_Frontend_Requests.log
Activer les logs sur l'indexation
Un fichier log est créé pour le processus de réindexation :
var/log/Wyomind_ElasticsearchCore_Indexation.log
Activer les logs sur les appels client
Un fichier log est créé pour les appels client Elasticsearch :
var/log/Wyomind_ElasticsearchCore_Client.log
Activer les logs sur le statut du serveur Elasticsearch
Un fichier log est créé pour le statut du serveur Elasticsearch :
var/log/Wyomind_ElasticsearchCore_Server_Status.log
Notification en back-office lorsque le serveur échoue
Si activé, vous pouvez définir votre propre configuration pour l'objet et le contenu de la notification en back-office.
Notez que vous pouvez aussi utiliser des variables dans le contenu de la notification :
- {{store_id}}
ID du magasin - {{code}}
Code du magasin - {{name}}
Nom du magasin - {{server_version}}
Version du serveur Elasticsearch - {{servers}}
Serveurs
Notification par email lorsque le serveur échoue
Lorsque le fichier log pour le statut du serveur Elasticsearch est activé, vous pouvez définir votre propre configuration pour les notifications par email.
Notez que vous pouvez aussi utiliser des variables dans le contenu de l'email :
- {{store_id}}
ID du magasin - {{message}}
Message retourné - {{server_status}}
Statut du serveur Elasticsearch - {{server_version}}
Version du serveur Elasticsearch
Configurer les paramètres du serveur
Commencez par configurer les paramètres généraux d'Elasticsearch.
Version du serveur Elasticsearch
Ici, sera affichée la version du serveur Elasticsearch que vous avez installé.
6.3.2
Serveurs
Les serveurs doivent être écrits host:port et séparés par une virgule.
Suivez cet exemple pour connaître tous les paramètres disponibles.
Vérifiez que vos serveurs sont correctement configurés en cliquant sur Check servers.
Vérification de l'hébergeur
Seulement utilisé pour les connexions https. Vous pouvez définir cette option sur NO si vous n'avez pas un certificat SSL valide.
Délai de connexion
Configurer les paramètres de l'indexation
Préfixe d'index
Utilisé pour donner un préfixe aux noms des index afin d'éviter les potentielles collisions.
demo_m2_
Paramètres d'indexation
Plus de shards améliore les performances d'indexation et permet de distribuer un grand index sur les différentes machines. Plus de replicas améliore les performances de recherche et améliore la disponibilité du cluster.
Plus d'info : Index settings properties reference
Paramètres d'analyse
Ici, vous pouvez définir les paramètres d'analyse.
Réindexation sécurisée
Ré-indexez les données dans un index temporaire et changez une fois terminé. Utile en particulier pour les gros catalogues de produits.
Exécution automatique des index invalides
Dans certains cas, vous pouvez avoir besoin de réindexer les index automatiquement étant donnée que cela peut prendre un certain temps. Alors, vous pouvez choisir d'exécuter automatiquement les index par tâche cron lorsqu'ils sont invalides.
Une notification est affichée dans l'admin Magento lorsque les index sont invalides.
Si vous désactiver cette option, vous pouvez exécuter vos index manuellement.
Configurer les paramètres de recherche
Opérateur de requête
Par défaut, cette option est sur AND. Vous pourriez avoir moins de résultats avec l'opérateur AND mais ils seront plus pertinent
"digital camera" sera traduit en "digital AND camera" ou "digital OR camera"
Activer les poids des produits
Ceci permet de modifier le poids de chaque produits dans la recherche. Ceci n'est uniquement valable dans les résultats de recherche.
Utiliser les images des parents
En activant cette option, lorsqu'un produit (configurable ou bundle) est récupéré depuis les données d'un produit enfant, alors les images du produit parent seront utilisées à la place des iages du produit enfant.
Retourner les produits disponibles en premier
Configurer les paramètres des entités
Vous pouvez configurer l'indexation des attributs plus précisément.
- Ouvrez chaque groupe d'attributs à l'aide de la flèche.
- Retrouvez tous les attributs regroupés par type.
- Lorsque les champs sont grisés, cela signifie que l'attribut est indexé par défaut par le module.
Pour pouvoir modifier l'option searchable, l'attribut doit être défini comme indexable. - Pour qu'un attribut soit searchable, il doit être indexé.
Pour pouvoir modifier toutes les options suivantes, l'attribut doit être searchable. - Vous pouvez booster chaque attribut que vous indexez en leur assignant un poids qui varie de 1 à 10.
Notez que 10 est le poids le plus haut. - Vous pouvez commencer à faire correspondre les résultats à partir des 1 à 5 premiers caractères.
- Vous pouvez commencer à faire correspondre les résultatsà partir des 1 à 5 derniers caractères.
- L'analyseur définit la manière dont le contenu des attributs sera analysé. Vous avez le choix entre plusieurs analyseurs.
Notez que le mode automatique convient dans la plupart des cas.Découvrez comment créer vos propres analyseurs avec notre module. - Vous avez la possibilité d'activer la recherche approximative pour chaque attribut et de choisir le niveau de fuzzyness:
0 : le nombre d'erreurs possibles est de 0 quelle que soit la taille du mot recherché.
1 : le nombre d'erreurs possibles est de 1 quelle que soit la taille du mot recherché.
2 : le nombre d'erreurs possibles est de 2 quelle que soit la taille du mot recherché.
AUTO : génère une distance d'édition basée sur la longueur du terme. Devrait généralement être la valeur préférée.Pour le mode AUTO, la longueur des mots a un impact sur la distance d'édition :
0..2 : doit correspondre exactement
3..5 : une modification autorisée
>5 : deux modifications autoriséesConsultez la documentation Elasticsearch pour plus d'informations sur le mode de requête Fuzzy.
Produit
Lorsque la recherche sur les produits est activée, les produits sont indéxés dans Elasticsearch.
Vous pouvez définir la taille de l'image en pixels.
50px
Ensuite, sélectionnez et configurez les attributs dans la recherche.
Product Name
SKU
Color
Description
Gender
Manufacturer
Outils de développement
Tester la recherche
La page Test Search est équivalente à la recherche en frontend avec les informations de debug. Cela vous permet de contrôler la manière dont la recherche va fonctionner avec la configuration d'Elasticsearch Core.
Vous pouvez accéder à la page Test Search depuis :
SystemWyomind Elasticsearch coreTest Search
Vous pouvez configurer :
- Search term
Ajoutez le terme que vous souhaitez rechercher. - Results limit
Définissez une limite pour le nombre de résultats affichés. - Storeview
Choisissez la vue du magasin à partir de laquelle vous souhaitez exécuter la recherche. - Customer Group
Choisissez le groupe de clients à partir duquel effectuer la recherche.
Utile pour contrôler les prix des produits pour un groupe de clients spécifique.
Après cela, vous pouvez cliquer sur Search.
Une grille affichera les résultats de votre recherche.
En cliquant sur Show details, vous devriez obtenir plus de détails sur les résutats.
Ceci est particulièrement utile pour savoir tout ce qui est retourné dans la recherche.
Le champ explanation explique comment le score est calculé et pourquoi le produit apparaît en premier dans les résultats de recherche.
Tester les analyseurs
Puisque notre module offre la possibilité de créer vos propres analyseurs, il est important de pouvoir les tester.
Vous pouvez accéder à la page Test Analyzers depuis :
SystemWyomind Elasticsearch coreTest Analyzers
Ajoutez votre code dans le champ Custom Analyzers, sélectionnez le Built-in Analyzers que vous souhaitez tester, et ajouter une phrase de test.
Cliquez sur Run Tests.
Le résultat de l'analyseur sera affiché dans le tableau comme ci-dessous.
Voici quelques exemples :
whitespace : analysera en séparant les mots par des espaces
standard : séparera les mots par des espaces, des apostrophes, des chevrons... et supprimera les balises HTML pour ne garder que le contenu utile
Gérer les index
Vous avez la possibilité d'obtenir plus d'informations et de gérer vos index directement depuis la grille dans :
SystemWyomind ELasticsearch CoreManage Indexes
Les index sont automatiquement mis à jour après les actions suivantes :
- Ajout / Edition / Suppression d'un produit
Le produit est mis à jour au niveau de l'index product. - Mise à jour de la liste des produits de catégorie
La catégorie est mise à jour au niveau de l'index category et les produits précédemment et actuellement liés à la catégorie sont mis à jour. - Commentaire ajouté à un produit
La note du produit est mise à jour au niveau de l'index product.
Indexer
Il y a plusieurs types d'index :
- product
- category (utilisé avec Elasticsearch Suite)
- cms (utilisé avec Elasticsearch Suite)
- brand (créé par Shop By Brand et utilisé avec Elasticsearch Suite)
Description
Dans la colonne Description, en cliquant sur More information, vous pouvez voir :
- luma_2_product
Il s'agit du nom de l'index au niveau du serveur Elasticsearch au format suivant :
le préfixe + le code de la vue magasin + le type d'index - 2046 documents
Cela veut dire que 2046 produits ont été indexées. - 4187,21 kB
Il s'agit de la taille de l'index sur le disque. - View Mapping
En cliquant sur View Mapping, une popup s'ouvre et affiche les données de mappage.
Dernière mise à jour
La date de la dernière exécution de l'index sera affichée dans la colonne Last Update.
Etat de la dernière action
L'état de la dernière action sera enregistré dans cette colonne. Vous pouvez aussi voir le nombre d'entités qui ont été indexées en passant la souris sur le statut.
Lorsque vous exécutez un index, une barre de progression affichera le statut de l'exécution ainsi que des informations supplémentaires sur l'indexation
Statut
Depuis la colonne Status, vous pouvez voir si les index sont valides ou non.
Action
Depuis la colonne Action, vous pouvez choisir de :
- Flush the index : pour vider et remettre à zéro l'index.
- Run the index : pour exécuter l'index sélectionné.
- Run via cron : pour déclencher la tâche cron afin d'exécuter les index sélectionnés.
Vérifier les données
Vous pouvez facilement voir ce qui est indexé au niveau des produits dans cette section :
SystemWyomind ELasticsearch CoreBrowse Data
Depuis la colonne Action, vous avez la possibilité de :
- Edit each line
Pour éditer chaque ligne, cela vous redirige sur la page produit. - See the raw data
Pour afficher les données brutes depuis une popup, ce qui est vraiment indéxé dans Elasticsearch.
Utiliser l'interface de lignes de commandes
Avec l'extension, vous pouvez utiliser plusieurs lignes de commandes facilement.
Mettre à jour la version du serveur Elasticsearch
Afin de mettre à jour la version du serveur Elasticsearch, vous pouvez utiliser la ligne de commande ci-dessous :
bin/magento wyomind:elasticsearchcore:update:server:version
Reindexer vos données
Pour réindexer vos données, vous pouvez utiliser la ligne de commande suivante:
bin/magento wyomind:elasticsearchcore:indexer:reindex [options]
Options :
- -s storecode ou --store storecode
Code de la vue magasin pour laquelle réindexer les données.
Notez que ce paramètre est unique, vous ne pouvez pas ajouter plusieurs codes magasins.Pour réindexer les données pour la vue magasin dont le code est “storefr” :
bin/magento wyomind:elasticsearchcore:indexer:reindex -s storefr
ou
bin/magento wyomind:elasticsearchcore:indexer:reindex --store storefr
- -i type ou --index type
Le type d'index : product
Pour réindexer les produits :
bin/magento wyomind:elasticsearchcore:indexer:reindex -i product
ou
bin/magento wyomind:elasticsearchcore:indexer:reindex --index product
You can also reindex your CMS pages and categories when using the Enhanced Autocomplete or the Multifaceted Autocomplete extension. - -p ID ou --product ID
L'ID du produit à réindexer.
Notez que ce paramètre est unique, vous ne pouvez pas ajouter plusieurs produits.Pour réindexer le produit dont l'ID est 2 :
bin/magento wyomind:elasticsearchcore:indexer:reindex -i product -p 2
ou
bin/magento wyomind:elasticsearchcore:indexer:reindex --index product --product 2
Lorsque vous exécutez un index, une barre de progression affichera le statut de l'exécution ainsi que des informations supplémentaires sur l'indexation.
Gérer les résultats de recherches
Tout comme pour les attributs produits, l'extension vous permet d'assigner des poids à vos produits.
Donner un poids aux produits
Assigner du poids à un produit
Afin de booster vos produits dans les résultats de recherche, vous pouvez leur assigner un poids. Pour ça, rendez-vous dans :
CatalogProducts
Éditez un produit que vous souhaitez mettre en avant.
Dans l'onglet Wyomind Elasticsearch Core, vous pouvez définir un poids entre 1 et 10.
Ignorer un produit dans l'indexation
Vous pouvez également ignorer un produit dans le processus d'indexation. Pour cela, allez dans :
CatalogProducts
Éditez un produit.
Dans l'onglet Wyomind Elasticsearch Core, vous pouvez définir l'option Ignore the product for indexation option sur Yes.
Gérer les synonymes dans les résultats de recherche
L'extension prend en compte les synonymes dans la recherche.
Créer des groupes de synonymes
Vous pouvez créer des nouveaux groupes de synonymes dans :
MarketingSeo & SearchSearch Synonyms
Par exemple, si vous créez la liste de synonymes :
shoes,footwear
Cela signifie que lors de la recherche du terme "orange shoes", l'extension effectuera la recherche sur :
orange shoes
orange footwear
Si d'autres synonymes sont définis tels que :
red,orange,yellow
Dans ce cas, l'extension va rechercher :
red shoes
red footwear
orange shoes
orange footwear
yellow shoes
yellow footwear
Tous les produits correspondant seront alors retournés dans la même liste.