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 Multifaceted 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 Multifaceted 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.
Comment utiliser l'extension Multifaceted Autocomplete ?
L'extension Multifaceted Autocomplete est un excellent outil pour améliorer votre autocomplete. Vous pouvez totalement personnaliser son apparence comme vous le souhaitez.
Vous avez la possibilité d'ajouter tous les types de produits, catégories et pages CMS dans vos résultats de recherche. Avec l'extension, vous pouvez ajouter autant de filtres que vous le souhaitez permettant aux visiteurs de votre site de filtrer les produits par n'importe quel attribut (prix, couleur, notes...). Aussi, la fonctionnalité "Did you mean?" est une bonne aide pour fournir des suggestions alternatives lorsque les utilisateurs peuvent avoir mal orthographié un terme de recherche.
Vous pouvez activer l'extension Multifaceted Autocomplete dans :
StoreSettingsConfiguration Wyomind Multifaceted Autocomplete
Une fois l'extension activée, vous pouvez configurer les paramètres d'affichage 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.
Mettre à jour les termes de recherche
Vous pouvez mettre à jour les informations des termes de recherche lorsqu'une recherche est faite depuis le formulaire autocomplete.
Vous retrouverez les termes de recherche mis à jour dans :
MarketingSEO & Search Search Terms
Activer la redirection
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.
Configurer l'autocomplete
L'extension Multifaceted Autocomplete propose plusieurs options pour configurer l'affichage selon vos besoins.
Stores SettingsConfigurationCatalog Catalog Catalog Search
Définir vos propres labels
Avec Multifaceted Autocomplete, vous pouvez définir vos propres titres pour :
- Search by
Rechercher par - Clear all
Il s'agit du lien pour effacer tous les filtres appliqués.
Tout effacer - X products found
{{nbItems}} peut être utilisé pour être remplacé par le nombre total de produits trouvés.
{{nbItems}} produits trouvés - Your search
Votre recherche - No more product
Plus de produit
L'extension Multifaceted Autocomplete vous permet d'améliorer l'autocomplete avec des filtres par attribut.
Ajouter des layers dans l'autocomplete
Pour chaque couche de filtres, vous pouvez :
- Ajouter autant d'attributs que vous le souhaitez en cliquant sur +.
- Utiliser le drag and drop pour modifier l'ordre de chaque colonne.
- Choisir les attributs à filtrer.
- Définir si les filtres sont Clos par défaut ou non.
- Afficher le nombre de résultats pour chaque attribut ou non.
- Afficher l'option Plus/moins pour chaque attribut.
- Configurer le nombre de valeurs à afficher lorsque l'option Plus/moins est activée.
- Filtrer les options des filtres (Input filter : non disponible pour les catégories, prix, reviews, swatch).
- Supprimer l'attribut des filtres.
Layers Update
Vous pouvez rafraîchir les filtres selon ceux qui sont déjà sélectionnés.
Lorsque cette option est activée, définissez comment les filtres qui ne sont plus disponibles sont affichés :
- Disabled
Les valeurs sans produit correspondant seront affichées mais ne pourront pas être sélectionnées. - Hidden
Les valeurs sans produit correspondant seront cachées.
Price Sliders
Si activé, des cases seront disponibles sous le slider afin de permettre aux utilisateurs de rentrer une valeur précise.
Activer le fil d'Ariane
Si le fil d'Ariane est activé, le chemin des filtres sélectionnés sera affiché dans l'autocomplete.
Configurer l'affichage des produits
Pour l'autocomplete, l'extension Multifaceted Autocomplete permet d'activer chaque option suivante séparément :
- Afficher un bouton "Ajouter au panier"
Le produit sera ajouté dans l'autocomplete à l'aide d'Ajax, sans recharger la page. - Afficher les attributs configurables
Le client peut choisir les options configurables avant d'ajouter le produit au panier. - Afficher un bouton "Ajouter à la wishlist" :
La Wishlist doit être activée dans :
StoresConfigurationCustomers Wish List - Afficher un bouton "Ajouter pour comparer"
- Afficher un bouton "Envoyer à un ami"
- Afficher les notes
Highlight
Lorsque que le highlight est activé, les termes de recherche seront surlignés dans les résultats de recherche.
Lien "Back to Top"
Si activé, un lien "back-to-top" sera ajouté à l'autocomplete afin de revenir en haut.
Switcher Grille/Liste
Lorsque le switcher grille/liste est activé, vous pouvez choisir un mode par défaut :
- Grille
- Liste
Tri
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
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 : 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'information et de gérer vos index directement depuis le tableau 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.
Indexer
Il y a 3 types d'index:
- category
- cms
- products
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.
Status
Depuis la colonne Status, vous pouvez voir si les index sont valides ou non.
Action
Vérifiez les données
Vous pouvez facilement voir ce qui est indexé au niveau des catégories, des pages CMS et 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 catégorie/CMS/produit. - See the raw data
Pour afficher les données brutes depuis une popup; ce qui est réellement indexé dans Elasticsearch.
Utiliser l'interface de lignes de commande
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
Réindexer 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 recherche
Tout comme pour les attributs produit, vous pouvez assigner du poids à vos produits directement.
Donner du poids aux produits
Assigner du poids aux produits
Pour booster vos produits dans les résultats de recherche, vous pouvez leur assigner un poids. Pour ça, allez dans :
CatalogProducts
Editez un produit que vous souhaitez mettre en valeur.
Dans l'onglet Wyomind Elasticsearch Core, vous pouvez définir le poids de 1 à 10.
Ignore products in the indexation
Vous pouvez ignorer les produits dans le processus d'indexation. Pour cela, allez dans :
CatalogProducts
Editez un produit que vous souhaitez ignorer.
Dans l'onglet Wyomind Elasticsearch Core, vous pouvez switcher l'option Ignore the product for indexation 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 correspondants seront alors retournés dans la même liste.