Fonctionnement du regroupement des produits

La fonction de regroupement des produits Solr permet de regrouper les entrées de catalogue parent avec leurs SKU sous-jacentes au moment de la requête. Les produits peuvent être choisis pour représenter le groupe renvoyé dans les résultats de recherche afin de fournir une pertinence visuelle.

Une zone d'index commune est indexée entre un produit et ses SKU sous-jacentes, qui sont utilisés ultérieurement comme zone de regroupement. Lors de l'interrogation de l'index de recherche, les paramètres de regroupement sont ajoutés à la requête Solr. Par conséquent, la réponse de recherche est structurée en groupes, plutôt que par une liste de documents Solr. Chaque groupe contient une liste de documents Solr connexes. Le nombre de lignes et la pagination s'appliquent au nombre de groupes, plutôt qu'au nombre de documents Solr renvoyés.

La terminologie suivante est utilisée pour le regroupement de produits :
Zone Regroupement
Le nom de la valeur d'index utilisée pour le regroupement.
Valeur du groupe
La valeur de zone de regroupement indexée. Chaque groupe contient des valeurs de groupe dédiées qui sont communes entre tous ses membres.
Groupe
Les documents Solr connexes qui partagent la valeur de la zone de regroupement.
Groupe propriétaire
Le document Solr avec un ID unique (catentry_id) correspondant à une valeur de la zone de regroupement. C'est-à-dire le document Solr renvoyé dans le jeu de résultats final. Chaque groupe doit disposer d'un propriétaire de groupe.
Représentant du groupe
Le document Solr sélectionné pour être soit le document le plus pertinent correspondant au terme recherché, soit celui qui contient un attribut particulier ou une valeur de propriété. Dans certains cas, le représentant du groupe est sélectionné pour être renvoyé dans le résultat final de la recherche, ou certaines de ses propriétés remplacent les propriétés du propriétaire du groupe.
Membre du groupe
Tout document Solr dans un groupe.

Processus de sélection des résultats du groupe

Le diagramme suivant illustre l'exemple de réponse du groupe de recherche et du processus de sélection du propriétaire de groupe :
exemple de réponse du groupe de recherche et du processus de sélection du propriétaire de groupe
Où :
  • Une requête de recherche génère sept documents Solr correspondants, qui sont regroupés en trois groupes différents.
  • Chaque groupe contient des documents communs qui partagent la valeur de la zone de regroupement.
  • Le premier groupe contient trois documents Solr, 2 SKU, et leur produit, le propriétaire du groupe. Puisque le propriétaire du groupe est renvoyé en tant que membre du groupe, le document Solr du propriétaire du groupe est sélectionné pour être renvoyé dans la liste finale des documents Solr.
  • Le deuxième groupe contient trois documents Solr, tous des SKU. Le propriétaire du groupe ne fait pas partie des membres du groupe. Par conséquent, soit le premier document Solr est sélectionné pour être renvoyé dans la liste de documents Solr finale, soit le propriétaire du groupe est récupéré depuis l'index.
    Le paramètre heroproduct du profil de recherche QueryMissingGroupOwner détermine s'il faut obtenir tous les propriétaires de groupe manquants dans un appel de lot.
    Remarque : Plusieurs raisons peuvent expliquer l'absence du propriétaire du groupe de la réponse d'origine. Par exemple, le terme de recherche n'a pas généré de résultats de recherche sur le produit, surtout si le terme de recherche correspond aux attributs du produit étendus dont les valeurs ne sont définies qu'au niveau des SKU. Ou, si le propriétaire du groupe est filtré parce qu'il n'est pas publié, autorisé, ne correspond pas au type de recherche spécifié, ou a dispose d'un stock insuffisant.
  • Le troisième groupe ne contient qu'un seul document Solr, le propriétaire du groupe. Par conséquent, il est sélectionné et ajouté dans la liste finale des documents Solr.

    Si le paramètre heroproduct du profil de recherche QueryMissingGroupOwner est configuré pour récupérer les propriétaires de groupe manquants de l'index et, pour une raison quelconque, le propriétaire du groupe n'est pas renvoyé (par exemple, il n'est pas publié ou autorisé), alors le premier document Solr est sélectionné comme propriétaire du groupe.

  • A la suite de ce processus de sélection, trois des sept documents Solr sont sélectionnés et traités par d'autres post-processeurs définis dans le profil de recherche.

Les nombres de facettes peuvent être configurés pour être basés soit sur les documents Solr originaux, soit sur le nombre de groupes.

Regroupement des processeurs et des profils de recherche

Le paramètre SearchRelevancyByProductGroupingQueryPreprocessor est utilisé pour lire les paramètres de regroupement à partir d'un profil de recherche et les ajouter à la requête de recherche. Il est activé lorsque la valeur relevancyType est définie sur 2.

Le paramètre SearchRelevancyByProductGroupingPostprocessor est ajouté comme premier post-processeur pour gérer la réponse du groupe de recherche. Le post-processeur ne sélectionne qu'un seul document Solr dans chaque groupe et crée une liste plate de documents Solr qui sera consommée par les autres post-processeurs. Ensuite, le résultat est renvoyé dans la réponse finale REST. Il est activé lorsque la valeur relevancyType est définie sur 2.

Les profils de recherche IBM_findProductsBySearchTerm, IBM_findProductsByNameAndShortDescriptionOnly, IBM_findProductsByNameOnly, et IBM_findProductsByUnstructureOnly peuvent être utilisés par le service REST productView bySearchTermServices.

Les profils de recherche IBM_findProductsByCategory et ComposeFacetListByCategoryId peuvent être utilisés par le service REST productView byCategoryId.

Le fragment suivant est un exemple de configuration de groupe telle que définie dans un profil de recherche :

<_config:group>
   <_config:param name="group" value="true"/>
   <_config:param name="group.limit" value="100"/>
   <_config:param name="group.facet" value="true"/>
   <_config:param name="group.sort" value="score desc"/>
   <_config:field name="grouping_parentCatentry_id"/>
</_config:group>
Où :
groupe
true
Le regroupement est activé.
false
Aucun des autres regroupements n'est évalué.
group.limit
Contrôle le nombre maximal de documents Solr à renvoyer par groupe.
group.facet
true
Le nombre de facettes est calculé en fonction du nombre de groupes.
false
Le nombre de facettes est calculé en fonction du nombre d'entrées de catalogue.
group.sort
Contrôle la façon dont les entrées du catalogue sont triées dans chaque groupe.
champ
Le nom de la zone à regrouper.

Vous pouvez ajouter d'autres paramètres de regroupement à l'aide de la même convention group.parameter_name. Pour plus d'informations sur les paramètres de regroupement, voir Result Grouping / Field Collapsing.

Représentants de groupe

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 :
Exemple de processus de sélection des produits représentatifs
Où :
  • Le premier groupe comprend quatre membres.
  • L'une des SKU est marquée par une valeur d'attribut de marchandisage de Hot. Cette SKU est choisie pour être le représentant du groupe.
  • Le propriétaire du groupe fait partie des membres du groupe. Toutefois, avant d'ajouter le propriétaire du groupe à la liste de documents Solr finale, la propriété miniature représentative du groupe est utilisée pour remplacer la propriété miniature du propriétaire du groupe. Par conséquent, le propriétaire du groupe qui est ajouté à la liste de documents Solr finale porte certaines des propriétés représentatives du groupe.
  • Le deuxième groupe contient trois membres, dont aucun n'est propriétaire du groupe et aucun ne possède la même valeur d'attribut de marchandisage. Par conséquent, le premier document Solr est choisi pour être le représentant du groupe, car il est le plus pertinent.

    Comme pour le regroupement, si le paramètre de requête du profil de recherche QueryMissingGroupOwner est configuré pour récupérer les propriétaires de groupes manquants à partir de l'index, il est exécuté dans un lot pour tous les groupes de la taille de page actuelle.

  • 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. Dans le cas contraire, le représentant du groupe est sélectionné pour être renvoyé dans la liste des documents Solr finale.
  • Le troisième groupe, similaire au regroupement, ne contient qu'un seul membre du groupe, le propriétaire du groupe. Par conséquent, il est sélectionné et ajouté dans la liste finale des documents Solr.
  • A la suite de ce processus de sélection, trois des huit documents Solr sont sélectionnés et traités par d'autres post-processeurs définis dans le profil de recherche.
Le fragment suivant est un exemple de produit représentatif de groupe tel que défini dans un profil de recherche :

<_config:heroproduct>
   <_config:param name="QueryMissingGroupOwner" value="true"/>
   <_config:param name="overrideFieldName" value="thumbnail"/>
   <_config:param name="showGroupPriceRange" value="true"/>
   <_config:field name="ads_f10003" value="Hot"/>
</_config:heroproduct>
<_config:result>
   <_config:field name="ads_f10003"/>
</_config:result> 
Où :
overrideFieldName
Prend une liste de zones à transporter à partir du produit pour remplacer les valeurs par défaut de productBean.
ads_f10003
Le nom de zone de l'attribut de recherche.
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.
Zone
Prend le nom de zone unique et sa valeur pour le produit, qui représente le représentant du groupe. La même zone doit être ajoutée dans les zones de retour de résultats de profil à évaluer pour chaque entrée de catalogue.
Remarque : Le nom de zone réel, dans cet exemple, représente un attribut de marchandisage qui est attribué comme attribut descriptif aux SKU représentatives.