Image du produit Hero
La fonction d'image du produit Elasticsearch Hero permet de grouper tous les SKU du produit au moment de la requête. Cette rubrique décrit le fonctionnement de l'image du produit Hero. Si vous souhaitez apprendre à configurer l'image du produit Hero, voir Configuration d'une image de produit Hero (regroupement de produits)
L'ID produit est identifié en fonction de la valeur de groupe de SKU la plus pertinente pour représenter le groupe renvoyé dans les résultats de recherche afin de garantir la pertinence visuelle.
Une zone d'index commune est indexée pour toutes les SKU sous-jacentes du produit, qui est utilisé ultérieurement comme zone de regroupement. Lors de l'interrogation de l'index de recherche, la section qui se réduit est ajoutée à la requête Elasticsearch. Par conséquent, la réponse de la recherche est structurée en occurrences et en innerHits, au lieu d'une occurrence Search. Chaque groupe contient des occurrences et des innerHits de documents connexes. Le nombre de lignes et la pagination s'appliquent au nombre de groupes, plutôt qu'au nombre de documents d'occurrences de recherche renvoyés.
Si l'image du produit Hero est activée et si aucune valeur searchType ne passe par le paramètre de requête ou dans le profil, la valeur searchType sera définie par défaut sur 5000 (Constantes de type de correspondance d'expression - (type:product OR (type:variant AND state:false)). Si la valeur searchType passe par le paramètre de requête ou à l'intérieur du profil de recherche, l'image du produit Hero sera désactivée.
Processus de sélection des résultats de l'image de produit Hero
Le diagramme suivant illustre l'exemple de réponse de groupe de recherche. En fonction de la réponse du groupe, un deuxième appel est effectué pour trouver le propriétaire du groupe :
- Une requête de recherche génère six documents Elasticsearch correspondants, qui sont regroupés en deux groupes différents.
- Chaque document renvoie la SKU la plus pertinente dans les occurrences principales.
- Dans la SKU la plus pertinente de chaque groupe, l'ID du propriétaire du groupe se trouve à l'aide de la zone relationship.product.group. Un deuxième appel est effectué pour rechercher les détails du produit.
Processeurs d'image de produit Hero et profils de recherche
Le paramètre SearchRelevancyByProductGroupingPreprocessor est utilisé pour lire les paramètres de regroupement à partir d'un profil de recherche et les ajouter à la requête de recherche.
Le paramètre SearchRelevancyByProductGroupingPostprocessor est ajouté comme premier postprocesseurs pour gérer la réponse du groupe de recherche pour la recherche de terme. Le postprocesseurs sélectionne un seul document Elasticsearch dans chaque groupe et effectue un deuxième appel pour rechercher le produit de propriétaire du groupe et crée des occurrences de recherche à utiliser par d'autres postprocesseurss. Ensuite, le résultat est renvoyé dans la réponse finale REST.
Les profils de recherche HCL_findProductsBySearchTerm peuvent être utilisés par le service REST productView bySearchTermServices.
Le paramètre SearchBrowseRelevancyByProductGroupingPostprocessor est ajouté comme premier postprocesseurs pour gérer la réponse du groupe de recherche pour la navigation. Le postprocesseur sélectionne un seul document Elasticsearch dans chaque groupe et effectue un deuxième appel pour rechercher le produit propriétaire du groupe. Il crée des résultats de recherche qui seront consommés par d'autres postprocesseurs. Ensuite, le résultat est renvoyé dans la réponse finale REST.
Les profils de recherche HCL_findProductsByCategory peuvent être utilisés par le service REST productView byCategoryId.
"group": { "enable": "false", "sort": "score desc", "field": "relationship.product.group" } Où :
- groupe
-
- enable: true
- Le regroupement est activé.
- enable: false
- Aucun des autres regroupements n'est évalué.
- sort: score desc
- Contrôle la façon dont les entrées du catalogue sont triées dans chaque groupe.
- zone
- Le nom de la zone à regrouper
Représentants de l'image du produit Hero
Il y a un représentant de groupe pour chaque regroupement de produits. Au lieu de restituer le propriétaire du groupe, une de ses SKU ou certaines de ses propriétés peuvent être restituées, en même temps que le propriétaire du groupe. Ou, au lieu d'ignorer les autres membres du groupe, on peut rechercher la fourchette de prix en fonction des membres du groupe.
Le diagramme suivant illustre le processus de sélection des produits représentatifs :
- Le premier groupe comprend trois membres.
- L'une des SKU est marquée par une valeur d'attribut de marchandisage de Hero. Cette SKU est choisie pour être le représentant du groupe.
- Un deuxième appel est effectué vers Elasticsearch pour trouver le propriétaire de groupe de la SKU représentative.
- Une fois que le propriétaire du groupe est récupéré, la propriété représentative du groupe est utilisée pour remplacer la propriété du propriétaire du groupe.
"hero": { "overrideFieldName": "url.thumbnail", "showGroupPriceRange": "false", "useMerchandiseAttribute": "false", "field": { "7741124012283334335": "Hero" } } Où :
- Hero
-
- overrideFieldName
- Prend une liste de zones à transporter à partir de la SKU pour remplacer les valeurs par défaut de productBean.
- showGroupPriceRange
- Il est activé de manière à ce que la fourchette de prix pour l'ensemble du groupe soit affichée, plutôt que le prix du produit uniquement, si les membres du groupe contiennent des prix différents.
- useMerchandiseAttribute
- Définissez cette valeur sur true si vous utilisez l'attribut de marchandise pour promouvoir une SKU de produit. La valeur false par défaut, qui améliore les performances si le regroupement est activé pour la navigation, sans que vous n'utilisiez l'attribut de marchandise pour promouvoir la SKU du produit.
- 7741124012283334335
- ID d'attribut de recherche.