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.
- 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

- 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.
<_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 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.
<_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.