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 Enhanced Autocomplete 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 Enhanced Autocomplete 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.
Utiliser l'extension Enhanced Autocomplete
Vous pouvez activer Enhanced Autocomplete dans :
StoreSWyomind Enhanced Autocomplete
Une fois l'extension activée, vous pouvez configurer la popup autocomplete comme vous le souhaitez.
Mode debug
Vous pouvez activer le mode debug.
Lorsqu'il est activé, une popup sera affichée sur le frontend avec les informations suivantes :
- Infinite scroll? : tous les produits ont-ils été chargés via le scroll infini ?
- Cache? : le module offre un cache pour la page actuelle. Si la requête est mise en cache, le serveur ne sera pas appelé et la réponse sera plus rapide.
Yes = le résultat vient du cache.
No = le résultat ne vient pas du cache.
Le cache est réinitialisé lorsque la page est rechargée. - Elasticsearch? : il s'agit du contraire de "cache?". Les résultats proviennent-ils du serveur Elasticsearch ?
Yes = la requête a été envoyée au serveur Elasticsearch et les résultats proviennent d'Elasticsearch.
No = les résultats étaient en cache. - PHP time : c'est le temps d'exécution du code PHP (y compris les requêtes sur le serveur Elasticsearch).
- Request time : c'est le temps d'exécution total des requêtes Ajax pour récupérer les produits ("PHP Time" compris).
- Rendering Time : c'est le temps nécessaire pour afficher les produits sur la page ("Request Time" non compris).
- Total time : c'est le temps requis pour les requêtes Ajax et l'affichage des produits.
- Enable Template Hints : pour afficher les templates utilisés par le module pour le rendu des pages.
- Show last request data : pour afficher les résultats de la dernière requête (Elasticsearch ou cache). Il y a une explication sur la différence de score entre les produits.
Configurer l'autocomplete
L'extension Enhanced Autocomplete offre différentes options afin de configurer l'affichage comme vous voulez.
Activer le highlight
Avec Enhanced Autocomplete, vous avez la possibilité d'activer la mise en exergue des termes de recherche afin qu'ils soient surlignés dans les résultats de recherche.
Activer le lien "All results"
Vous pouvez activer le lien "All Results" link dans l'autocomplete. Ceci redirigera alors vers la page de résultats de recherche.
Mettez à jour les termes de recherche
Vous avez la possibilité de mettre à jour les informations des termes de recherche lorsqu'une recherche est faite depuis le formulaire autocomplete.
Vous pourrez retrouver les termes de recherche mis à jour dans : MarketingSEO & Search Search Terms
Définir les labels
Avec Enhanced Autocomplete, vous pouvez définir vos propres titres pour :
- Lien "All Results"
{{term}} peut être utilisé pour être remplacé par le terme de recherche dans le titre.
See all results for <b>{{term}}</b> >> - Section "Did you mean?"
Do you mean? - Section "Products"
Products - "No product found"
No product found - Section "Categories"
Categories - "No category found"
No category found - Section "Pages"
Page - "No page found"
No page found
Activer l'option Did you mean
Avec l'extension, vous avez également l'option Did you mean. qui propose des suggestions alternatives lorsque les utilisateurs ont mal orthographié les termes de recherche.
L'option Did you mean peut être activée dans :
- l'autocomplete
- la page de résultats de recherche
Aussi, vous pouvez définir une limite du nombre de suggestions affichées dans l'autocomplete.
Configurer les résultats affichés dans l'autocomplete
L'extension Enhanced Autocomplete vous permet de proposer la recherche sur les produits, les catégories et les pages CMS depuis l'autocomplete.
Vous pouvez définir vos préférences depuis :
StoreS Wyomind Enhanced Autocomplete Product/Category/CMS
Stores SettingsConfigurationCatalog Catalog Catalog Search
Produit
Ci-dessous, seulement les produits sont activés dans l'autocomplete.
Vous pouvez aussi activer la redirection lorsque seulement un produit est trouvé dans l'autocomplete.
Dans ce cas, le client sera automatiquement redirigé vers la page du produit en appuyant sur la touche Entrer.
Catégorie
Les catégories peuvent être affichées dans :
- l'autocomplete
- la page de résultats de recherche sur la colonne de gauche
Vous pouvez limiter le nombre de résultats de recherche affichés.
Aussi, vous avez le choix entre afficher ou cacher cette section lorsqu'il n'y a aucune catégorie.
Ci-dessous, les produits et les catégories sont activés dans l'autocomplete.
Page CMS
Vos pages CMS peuvent être activées dans :
- l'autocomplete
- la page de résultats de recherche : affichées dans la colonne de gauche
Vous pouvez limiter le nombre de résultats de recherche affichés.
Aussi, vous avez le choix entre afficher ou cacher cette section lorsqu'il n'y a aucune page CMS.
Ci-dessous, les produits, catégories et pages CMS sont activés dans l'autocomplete.
Configurer le Core Elasticsearch
Vous pouvez configurer le Core Elasticsearch comme vous le souhaitez depuis la configuration Magento dans :
StoreSWyomindElasticsearch Core
Activer les logs / debug
L'extension comprend des logs qui vous permettent de vérifier les requêtes en frontend, l'indexation, et le statut du serveur Elasticsearch.
Activer le log de requête
Un fichier de log est créé pour les requêtes en frontend :
var/log/Wyomind_ElasticsearchCore_Frontend_Requests.log
Activer le log d'indexation
Un fichier de log est créé pour le processus de reindexation :
var/log/Wyomind_ElasticsearchCore_Indexation.log
Activer le log de client
Un fichier de log est créé pour les appels client Elasticsearch :
var/log/Wyomind_ElasticsearchCore_Client.log
Activer le log de statut du serveur Elasticsearch
Un fichier de log est créé pour le statut du serveur Elasticsearch :
var/log/Wyomind_ElasticsearchCore_Server_Status.log
Recevoir une notification en backend lorsque le serveur echoue
Lorsque le log du statut du serveur Elasticsearch est activé, vous pouvez activer et définir votre propre configuration pour l'objet et le contenu de la notification en backend.
Vous avez la possibilité d'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
Recevoir une notification par email lorsque le serveur echoue
Lorsque le log du statut du serveur Elasticsearch est activé, vous pouvez activer et définir votre propre configuration pour la notification par email.
Vous avez la possibilité d'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
Vous pouvez configurer les paramètres généraux Elasticsearch.
Version du serveur Elasticsearch
Ici sera affichée la version du serveur Elasticsearch que vous avez installée.
6.3.2
Serveurs
Les serveurs doivent être sous la forme host:port et séparés par une virgule.
Voir tous les paramètres disponibles.
Vérifiez que vos serveurs sont correctement configurés en cliquant sur TEST servers.
Verify Host
Uniquement utilisé pour les connexions https. Vous pouvez définir cette option sur No si vous n'avez pas de certificat SSL valide.
Connect Timeout
Configurer les paramètres de l'indexation
Index Prefix
Index Settings
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 sur la référence des propriétés des paramètres d'indexation.
Analysis Settings
C'est là que vous pouvez définir les paramètres d'analyse.
Safe Reindex
Reindexer dans un index temporaire et switcher une fois terminé. Utile en particulier pour les gros catalogues de produits.
Automatically run indexers if invalidated
Dans certains cas et parce que le processus peut être long, vous pourriez avoir besoin de réindexer automatiquement. Vous pouvez alors choisir d'éxecuter automatiquement les index via les tâches cron lorsque ceux-ci sont invalidés.
Une notification est affichée dans l'admin Magento lorsque les index sont invalidés.
Si vous désactivez cette option, vous pouvez exécuter vos index manuellement.
Configurer les paramètres de recherche
Query Operator
Par défaut, ce paramètre est configuré sur AND. Vous pouvez obtenir moins de résultats avec l'opérateur AND mais ils seront plus pertinents.
"digital camera" est traduit en "digital AND camera" ou "digital OR camera"
Enable Product Weight
Cette option active la modification du poids pour les produits. Elle n'est disponible que pour les résultats de recherche.
Use parent images
En activant cette option, lorsqu'un produit (configurable ou bundle) est trouvé à partir des données d'un produit enfant, alors les images du produit parent seront utilisés à la place des images des produits enfants.
Return available products first?
En activant cette option, les produits disponibles à la vente seront retournés avant les produits non disponibles.
Configurer les paramètres des entités
Vous pouvez configurer l'indexation des attributs de manière plus poussée.
- Ouvrez chaque groupe d'attributs en utilisant 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'attribute doit être indexable. - Pour qu'un attribut soit searchable, il doit être indexé.
Pour pouvoir modifier toutes les options suivantes, l'attribute doit être searchable. - Vous pouvez booster chaque attribut indexé en lui assignant un poids de 1 à 10.
Notez que 10 est le poids le plus haut. - La recherche de résultats commencera à partir des 1 à 5 premiers caractères.
- La recherche de résultats commencera à 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 majorité des cas.Plus d'info sur la création de 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 peu importe la taille du terme de recherche
1 : le nombre d'erreurs possibles est de 1 peu importe la taille du terme de recherche
2 : le nombre d'erreurs possibles est de 2 peu importe la taille du terme de recherche
AUTO : génère une distance de Levenshtein basée sur la longueur du terme. Devrait généralement être la valeur utilisée.Pour le mode AUTO, la longueur du terme a un impact sur la distance :
0..2 : doit correspondre exactement
3..5 : une modification autorisée
>5 : deux modifications autoriséesVérifiez la documentation d'Elasticsearch pour plus d'info sur le mode Fuzzy query.
Category
Vous pouvez activer la recherche par catégorie pour qu'elles puissent être indexées dans Elasticsearch.
Si c'est le cas, vous devez sélectionner et configurer les attributs des catégories pouvant faire l'objet d'une recherche.
Description
CMS
Vous pouvez activer la recherche parmi vos pages CMS pour qu'elles soient indexées dans Elasticsearch.
Il vous suffit de sélectionner et de configurer les attributs de recherche.
Title
Identifier
Content
Vous avez aussi la possibilité d'exclure des pages qui pourraient ne pas être pertinentes dans les résultats de recherche.
404 Not Found
Enable Cookies
Privacy Policy
Product
Lorsque la recherche sur les produits est activée, les produits sont indexés dans Elasticsearch.
Vous pouvez définir la taille de l'image en pixels.
90px
Puis, séléctionnez et configurez les attributs qui peuvent faire l'objet d'une recherche.
Product Name
SKU
Color
Description
Gender
Manufacturer
Configurer l'affichage en frontend
Vous pouvez définir vos préfèrences pour les couleurs et l'affichage.
Loader Image
Choisissez l'image que vous souhaitez afficher lors du chargement des catégories et des pages de recherche. Elle peut être au format :
Primary color
Secondary color
Background primary color
Background secondary color
Enable overlay
Utilisé pour l'ombre derrière l'autocomplete.
Enable blur effect
Arrière-plan flou derrière l'autocomplete.
Enable transition
Affichez ou masquez en douceur l'autocomplete.
Si activé, vous pouvez définir la durée de la transition en secondes.
0.2
Outils de développement
Test Search
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 à afficher. - Storeview
Choisissez une vue magasin depuis laquelle vous souhaitez exécuter la recherche. - Customer Group
Choisissez un groupe de clients depuis lequel exécuter la recherche.
Utile pour contrôler les prix des produits pour un groupe de clients en particulier.
Après ça, vous pouvez cliquer sur Search.
Une grille affichera les résultats pour votre recherche.
En cliquant sur Show details, vous devriez obtenir plus de détails sur les résultats.
Utile pour connaître 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.
Test Analyzers
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 : va analyser en séparant les mots par des espaces
standard : va séparer les mots par des espaces, apostrophes, chevrons ... et supprimer les balises HTML afin de garder uniquement du 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. - Ajout / Edition / Suppression d'une page CMS
La page CMS est mise à jour au niveau de l'index CMS. - Ajout / Edition / Suppression d'une catégorie
La catégorie est mise à jour au niveau de l'index category. - 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.
Index
Il y a 3 types d'index :
- category
- CMS
- product
Description
Dans la colonne Description, en cliquant sur More information, vous pouvez voir :
- demo_m2_default_category
C'est le nom de l'index au niveau du serveur Elasticsearch au format suivant :
préfixe + code de la vue magasin + type d'index - 36 documents
Cela signifie qu'il y a 36 catégories indexées. - 14,77 kB
C'est la taille de l'index dans le disque. - View Mapping
En cliquant sur View Mapping, une popup s'ouvre et affiche les données de mappage.
Last Update
La dernière fois que l'index a été exécuté sera enregistrée dans la colonne Last Update.
Last action state
L'état de la dernière action sera enregistré dans cette colonne. Vous pouvez également voir le nombre d'entités qui ont été indexées en passant la souris sur le statut.
En exécutant un index, une barre de progression affichera son statut et des informations sur le processus d'indéxation.
Statut
Action
Depuis la colonne Action, vous avez la possibilité 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: ceci déclenchera la tâche cron pour exécuter les index sélectionnés.
Vérifier les données
Vous pouvez facilement voir ce qui est indexé au niveau des catégories, des pages CMS et des produits dan 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 catégorie/CMS/produit - See the raw data
Pour afficher les données brutes depuis une popup
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
Mettre à jour le fichier de configuration
bin/magento wyomind:elasticsearchcore:update:config
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
Le 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 tous les types 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 or --index type
Liste des types d'index séparés par un espace : cms, category, et product
Pour réindexer les produits seulement :
bin/magento wyomind:elasticsearchcore:indexer:reindex -i product
ou
bin/magento wyomind:elasticsearchcore:indexer:reindex --index product
Vous pouvez aussi réindexer vos marques avec l'extension Shop by Brand. - -p ID or --product ID
L'ID du produit à réindexer.
Notez que ce paramètre est unique, vous ne pouvez pas ajouter plusieurs produitsPour 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
Plus d'exemples :
Pour réindexer tous les types pour toutes les vues magasin et tous les produits :
bin/magento wyomind:elasticsearchcore:indexer:reindex
Pour réindexer les catégories pour la vue magasin dont le code est “storefr” :
bin/magento wyomind:elasticsearchcore:indexer:reindex -s storefr -i category
Pour réindexer les catégories et les pages CMS :
bin/magento wyomind:elasticsearchcore:indexer:reindex -i category cms
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
L'extension vous permet d'assigner des poids à vos produits mais également à vos attributs 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 Enhanced Autocomplete 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.