HCL Commerce Version 9.1.14.0 or later

Propriétés des profils de recherche

Les profils de recherche sont définis au format .json. Vous pouvez configurer les propriétés afin de personnaliser le comportement de recherche, à l'aide d'un ensemble de fournisseurs définis et de préprocesseurs et postprocesseurs.

Structure des profils de recherche

Chaque document de profil est au format .json et possède la structure ci-dessous. (Cet exemple montre la fonctionnalité de surlignage d'Elasticsearch ; pour plus d'informations sur cette fonctionnalité, voir Surligneurs dans le guide Elasticsearch.)
{ "indexName": "string", "parentProfileName": "string", "profileName": "string", "query": { "highlight": { "fields": [ "name", "fieldName" ], "simplePre": "<strong><span class=font2>", "simplePost": "</span></strong>" }, "params": [ { "paramName": "value" } ], "postprocessor": [ "postprocessorClass" ], "preprocessor": [ "preprocessorClass" ], "provider": [ "providerClass" ], "queryFields": [ "field1", "filed2" ], "responseFields": [ "field1", "filed2" ], "sortFields": { "key": "value" }, "spellcheck": { "limit": "5" }, "group" : { "enable" : "false", "sort" : "score desc", "field" : "relationship.product.group" }, "hero" : { "overrideFieldName" : "url.thumbnail", "showGroupPriceRange" : "false", "field" : { "7741124012283334335" : "Hero" } } } }

Propriétés du profil

Le tableau suivant résume les propriétés configurables des profils.

Propriété de profil de recherche Sous-propriété Description
indexName Ce champ contient le nom de l'index Elasticsearch pour lequel le profil générera et exécutera des requêtes élastiques. Cette zone est obligatoire. Par exemple : auth.price ou live.inventory.
parentProfileName Cette propriété est utilisée pour hériter d'un profil existant. C'est un paramètre non obligatoire.
profileName Nom d'un fichier contenant des attributs de performances configurables, ainsi qu'une ou plusieurs définitions d'éléments de chargement.
query maxRows Limite le nombre maximal de résultats de recherche par page. La valeur par défaut est 50.
maxTimeAllowed Limite la durée maximale autorisée (en millisecondes) pour l'exécution de toute requête. Si la requête prend plus de temps que ce qui est spécifié, un délai d'attente se produit et des résultats partiels (ou non) peuvent être renvoyés. Si la valeur est nulle, le paramètre est supprimé de la requête. La valeur par défaut est 15000.
highlight Déclare une liste de zones d'index de recherche à utiliser pour la mise en évidence et leur comportement de mise en évidence associé au moment de l'exécution.
queryFields Cette propriété définit la portée de la recherche (par exemple, les champs de recherche Elasticsearch uniquement) pour la requête Elasticsearch en cours de formation.
sortFields Sert à définir les options de tri pour les requêtes Elasticsearch. La clé de chaque champ correspond à l'index_field_name. Ces clés peuvent être envoyées directement depuis la vitrine en vue d'être utilisées dans la définition du tri.
preprocessor Voir Préprocesseurs.
postprocessor Voir Postprocesseurs.
providers Voir Fournisseurs disponibles.
responseFields Même chose que Solr
spellcheck Définit le comportement de vérification orthographique au moment de l'exécution.
Elle contient le paramètre suivant :
limit
Indique le nombre maximum de suggestions à renvoyer. La valeur par défaut est 5.
groupe Définit le comportement de regroupement des résultats de recherche au moment de l'exécution.
groupe
Spécifie si le regroupement des résultats de recherche est activé. La valeur par défaut est false.

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 Apache 5.5 - Guide de référence.

group.limit
Spécifie le nombre maximal de résultats de recherche par groupe. La valeur par défaut est 100.
zone
Le nom de la zone à regrouper. Cette valeur doit être définie comme la dernière entrée de la configuration de groupe.
Hero Définit le comportement des produits du groupe représentatif au moment de l'exécution. Cette propriété s'applique lorsque le regroupement des résultats de recherche est activé.
overrideFieldName
Une liste séparée par des virgules répertoriant les noms de champs. Lorsqu'elles sont spécifiées, certaines propriétés de l'article le plus pertinent du groupe remplacent les propriétés productBean renvoyées. Par exemple, miniature ou nom. La valeur par défaut est miniature.
showGroupPriceRange
Lorsqu'il est défini sur true, le prix productBean renvoyé affiche une fourchette de prix basée sur les SKU sous-jacentes qui ont généré les résultats de recherche. La valeur par défaut est false.
QueryMissingGroupOwner
Récupère les propriétaires de groupe manquants de l'index. Il est exécuté dans un lot pour tous les groupes pour la taille de la page en cours. La valeur par défaut est true.

Fournisseurs disponibles

Providers Description
SearchBasedMerchandisingExpressionProvider Appelle le composant marketing pour exécuter les règles de recherche. Les règles de recherche peuvent s'appliquer à toutes les recherches ou mots clés de recherche spécifiques à la cible. Elles peuvent ajouter plus de contraintes à la requête de recherche pour influencer l'ordre des résultats. Elles peuvent également ajouter de nouvelles conditions à la requête de recherche avec l'intention d'ajouter de nouveaux produits aux résultats de recherche.
SearchByCategoryExpressionProvider Gère la recherche par catégorie et prend en compte du catalogue de vente dans le contexte métier actuel.
SearchByManufacturerExpressionProvider Gère la recherche par requête de marque. L'expression résultante est ajoutée de nouveau à l'objet SelectionCriteria (_wcf.search.internal.meta) et doit être codée ultérieurement dans la chaîne de méta-informations.
SearchByPriceExpressionProvider Gère la requête de recherche par fourchette de prix générée à partir de la page Recherche avancée. L'expression résultante est ajoutée de nouveau à l'objet SelectionCriteria (_wcf.search.internal.meta) et doit être codée ultérieurement dans la chaîne de méta-informations.
SearchByFacetExpressionProvider Gère la requête de recherche par facettes. Ce fournisseur permet de convertir une expression XPath en une expression Elasticsearch. L'expression résultante est ajoutée de nouveau à l'objet SelectionCriteria (_wcf.search.internal.meta) et doit être codée ultérieurement dans la chaîne de méta-informations.
SearchByStorePathExpressionProvider, SearchByStorePathAssetStoreExpressionProvider Génère des conditions pour gérer le chemin d'accès du magasin. L'expression résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchByPublishedEntryOnlyExpressionProvider Limite les résultats de recherche aux entrées publiées. L'expression résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchByCustomExpressionProvider Gère la recherche par expression personnalisée stockée dans _wcf.search.expr. Cette expression personnalisée est ajoutée à l'objet SelectionCriteria (_wcf.search.internal.optional.query) pour d'autres traitements en aval.
SearchTypeExpressionProvider Ce fournisseur d'expressions de recherche gère le type de correspondance pour les requêtes de recherche de mots clés. La pseudo logique suivante décrit comment le type de correspondance (_wcf.search.type) peut être converti en un critère de recherche :
  1. Le type de correspondance est par défaut ANY, exclure SKU.
  2. L'expression Exclure SKU est représentée comme -catenttype_id_ntk_cs:ItemBean.
  3. L'expression Seulement SKU est représentée comme - +catenttype_id_ntk_cs:ItemBean.
  4. L'expression Inclure SKU n'a pas besoin d'être qualifiée.
L'expression résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchProductSequencingExpressionProvider Organise les entrées de produits dans le résultat de la recherche par classement.
SearchCategorySequencingExpressionProvider Trie les catégories par classement.
SearchTermAssociationExpressionProvider Gère l'expansion de l'association de termes de recherche (STA). Ce fournisseur permet d'obtenir des synonymes et de remplacer le terme de recherche pour obtenir le résultat final. Les synonymes récupérés par le service STA sont rajoutés à l'objet SelectionCriteria pour d'autres traitements en aval : _wcf.search.internal.synonyms.
SearchProductEntitlementExpressionProvider Effectue l'autorisation de produit. Il est géré en appelant ProductEntitlementExpressionHelper pour générer des expressions de requête spécifiques aux moteurs de recherche pour les contrats qui contiennent les modalités CatalogueFilter et ProductSet. Si une liste de contrats est transmise, ProductEntitlementExpressionHelper génère l'expression de recherche par rapport à ces contrats, au lieu de récupérer le contrat du contexte. Dans le cas contraire, si aucun contrat n'est transmis en tant que paramètres, cette classe d'aide récupère les contrats admissibles actuels et génère des expressions de recherche à leur niveau. L'expression résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchCategoryEntitlementExpressionProvider Exécute l'autorisation de niveau groupe du catalogue en déclenchant une recherche sur le noyau Entrée de catalogue. Ensuite, il analyse le nombre de facettes renvoyé à partir du noyau d'entrée du catalogue et construit une requête de filtrage interne sur le noyau du groupe de catalogues. L'expression résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchByKeywordRelevancyExpressionProvider Gère la requête de recherche par mot clé.
SearchInventoryExpressionProvider Gère les recherches pour l'index de recherche de stock.
SearchByCatalogExpressionProvider Ce fournisseur est utilisé pour la gestion du contexte du catalogue. L'expression ES résultante est ajoutée à nouveau dans l'objet searchCriteria en vue d'autres traitements en aval à l'aide du paramètre de contrôle _wcf.search.internal.filterquery.
SearchByLanguageExpressionProvider Gère la recherche en fonction de la langue. L'expression ES résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.
SearchByRankingQueryProvider Ce fournisseur est utilisé pour gérer la recherche basée sur le classement. L'expression ES résultante sera ajoutée à nouveau dans l'objet searchCriteria en vue d'autres traitements en aval à l'aide des paramètres de contrôle _wcf.search.internal.filterquery et _wcf.search.rule.add.
SearchBySellerExpressionProvider Ce fournisseur est utilisé pour gérer la requête de recherche par nom de vendeur. L'expression résultante sera ajoutée à nouveau dans l'objet searchCriteria en vue d'autres traitements en aval à l'aide du paramètre de contrôle _wcf.search.internal.meta.
SearchChildCategoryExpressionProvider Il s'agit de l'implémentation du fournisseur d'expression de recherche qui sert à gérer la requête de recherche par catégorie parente. L'expression ES résultante sera ajoutée à nouveau dans l'objet searchCriteria en vue d'autres traitements en aval à l'aide du paramètre de contrôle _wcf.search.internal.filterquery.
SearchMultiwordFilterProviderHelper Convertissez l'espace multi-mots avec NNNN et ajoutez à nouveau le terme de recherche résultant au paramètre _wcf.search.term en vue d'un traitement ultérieur.
SearchNavigationExpressionProvider Ce fournisseur appelle le service marketing RESTful pour exécuter des règles de navigation par catégorie. Notez qu'il n'est possible d'utiliser des règles de navigation qu'avec les cibles et actions suivantes : - Cible « Page actuelle » (comportement « Le client consulte une catégorie » uniquement) - Cible « Segment client » (pour les segments client explicites uniquement) - Action « Modifier l'ordre des résultats de recherche ». Toutes les autres cibles et actions ne sont pas prises en charge.
SearchWorkspaceExpressionProvider Gère la recherche par espace de travail. L'expression ES résultante est ajoutée à nouveau dans l'objet SelectionCriteria (_wcf.search.internal.filterquery) en vue d'autres traitements en aval.

Préprocesseurs

Table 1.
Preprocessor Description
SearchRelevancyByProductGroupingQueryPreprocessor Lorsque le regroupement ou la navigation de recherche de héros est activé, ce préprocesseur inclut l'agrégation et le regroupement dans le générateur de requêtes de recherche élastique.

Postprocesseurs

Table 2. Descriptions des postprocesseurs
Postprocessor Description
SearchCatalogEntryViewAttachmentsQueryPostprocessor Reformate la réponse en un objet structuré. Il remplit la liste Pièces jointes dans la partie catalogEntryView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous la section XPathToAttachmentsBODResponseFieldNameMapping. Ce postprocesseur effectue une sous-requête de recherche pour récupérer les ressources associées à l'entrée de catalogue. Il utilise le profil de recherche IBM_findCatalogEntryAssociatedAssets.
SearchCatalogEntryViewAttributesQueryPostprocessor Reformate la réponse en un objet structuré. Il remplit la liste Attributs et la liste de valeurs Attributs dans la partie catalogEntryView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous les sections XPathToAttributesBODResponseFieldNameMapping et XPathToAttributesValuesBODResponseFieldNameMapping.
SearchCatalogEntryViewComponentsQueryPostprocessor Reformate la réponse en un objet structuré. Il remplit la liste Composants dans la partie catalogEntryView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous la section XPathToComponentsBODResponseFieldNameMapping. Ce post-processeur effectue une requête de sous-recherche pour récupérer les articles associés aux composants associés à l'entrée de catalogue. Il utilise le profil IBM_findCatalogEntryComponentssearch.
SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor Reformate la réponse en un objet structuré. Il remplit lmerchandisingAssociationslistdans la partie catalogEntryView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous la section XPathToMerchandisingAssociationsBODResponseFieldNameMapping. Ce post-processeur lance une requête dans la base de données pour récupérer les identificateurs de marchandisage associés aux entrées de catalogue, puis effectue une sous-recherche pour récupérer les détails de marchandisage réellement associés. Il utilise le profil de recherche It uses the IBM_findCatalogEntryAssociatedMerchandising et le modèle de requête BM_GET_MERCHANDISING_ASSOCIATIONS_BY_CATALOG_ENTRY_ID définis dans le fichier wc-query-utilities.tpl.
SearchBrandSuggestionQueryPostprocessor Un post-processeur de requêtes de recherche pour traiter les suggestions de marque.
SearchCategorySuggestionQueryPostprocessor Un post-processeur de requêtes de recherche pour traiter les suggestions de catégorie.
SearchFacetQueryPostprocessor Attache la réponse liée aux facettes aux données.
SearchChildCategoryEntitlementQueryPostprocessor Supprime unentitled child catgroupId de la DocumentList dans la réponse.
SearchCategoryEntitlementQueryPostprocessor Supprime le document de catégorie spécifié de la DocumentList dans la réponse.
SearchBreadCrumbTrailQueryPostprocessor Générez le chemin de navigation.
SearchEntitlementQueryPostprocessor Placez les informations catgroup_id_search sur les facettes dans SearchResponse.
SearchSpellCheckSuggestionQueryPostprocessor Reformate les commentaires de correction orthographique en une liste plus lisible de mots clés.
SearchCatalogGroupViewUserDataQueryPostprocessor Ajoutez des zones d'index personnalisées à la réponse de recherche pour la ressource de la vue de catégorie.
SearchRelevancyByProductGroupingPostprocessor Un post-processeur de requêtes de recherche pour gérer les configurations de regroupement des résultats.
SearchBrowseRelevancyByProductGroupingPostprocessor Sélectionne un document Elasticsearch dans chaque groupe et effectue un deuxième appel pour rechercher le produit du propriétaire du groupe et crée des occurrences de recherche qui seront utilisées par d'autres postprocesseurs. Ensuite, le résultat est renvoyé dans la réponse finale REST.
SearchCatalogEntrySuggestionQueryPostprocessor Reformate la réponse ES en un objet structuré à partir de catalogEntryView et renseigne la partie suggestionView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous la section XPathToCategoryViewBODResponseFieldNameMapping.
SearchCatalogEntryViewImagesQueryPostProcessor Un postprocesseur de requête de recherche pour la gestion de tous les champs liés aux images.
SearchCatalogEntryViewPriceQueryPostprocessor Reformate la réponse en un objet structuré. Il remplit la liste de prix dans la partie catalogEntryView de la réponse. La configuration de mappage est définie dans le fichier wc-component.json sous la section XPathToPriceBODResponseFieldNameMapping.
SearchCatalogEntryViewUserDataQueryPostprocessor Un postprocesseur de requête de recherche permettant d'ajouter des champs personnalisés dans la réponse.
SearchCatalogEntryViewUserDataQueryPostprocessor Un postprocesseur de requête de recherche permettant d'ajouter des champs personnalisés dans la réponse.
SearchRankingQueryPostProcessor Réordonne la réponse ES en fonction des détails du classement et l'inclut également dans le champ « classements » des métadonnées de réponse.
SearchKeywordSuggestionQueryPostprocessor Un postprocesseur de requêtes de recherche permettant de gérer les suggestions de mots clés.
SearchSellerSuggestionQueryPostprocessor Un postprocesseur de requêtes de recherche permettant de gérer les suggestions de vendeurs.
SearchV2ContentPageQueryPostProcessor Un postprocesseur de requêtes de recherche permettant d'ajouter une section de présentation pour les pages de contenu dans la réponse du service URL.

V2UrlAssetStorePostProcessor

V2UrlPostProcessor

Une réponse de l'API d'URL v2 de restructuration du postprocesseur de requêtes de recherche.
SearchV2UrlUserDataQueryPostProcessor Un postprocesseur de requête de recherche permettant d'ajouter des champs personnalisés dans la réponse.