Configuration de votre profil de recherche personnalisé
ZooKeeper stocke les profils nommés dans l'un de ses nœuds. Vous pouvez créer, mettre à jour, supprimer et obtenir des profils à l'aide du nœud final du service Query. Pour plus d'informations sur les profils HCL Commerce Search, voir Rechercher dans les profils.
Spécification du document de nœud final et de profil
https://data_environment_hostname:30921/search/resources/api/v2/documents/profiles/profileNamePour la spécification d'API REST complète, voir API REST de Query.{ "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" } } } }Pour une description des noms et valeurs des champs, ainsi que des pré- et postprocesseurs disponibles, voir Propriétés des profils de recherche.

Profils de recherche avancée
HCL_findCatalogEntryById. Définissez le profil de recherche avancée comme suit : { "parentProfileName" : "", "profileName" : "HCL_findProductsBySearchTerm", "lookupProfileName" : "HCL_findCatalogEntryById", "indexName" : "product", "query" : {En interne, le processeur SearchRelevancyByProductGroupingPostprocessor utilise le profil de recherche avancée pour récupérer les détails du produit. De même, si une image de produit Hero est activée pour la navigation par catégorie, le profil HCL_findProductsByCategory voit sa propriété de profil de recherche avancée définie sur la valeur HCL_findCatalogEntryByIdForBrowse. En interne, le processeur SearchBrowseRelevancyByProductGroupingPostprocessor utilise le profil de recherche avancée pour récupérer les détails du produit.{ "parentProfileName" : "", "profileName" : "HCL_findProductsByCategory", "lookupProfileName" : "HCL_findCatalogEntryByIdForBrowse", "indexName" : "product", "query" : {Des profils de recherche avancée peuvent être définis dans le profil de recherche à l'aide de la propriété lookupProfileNames, avec une paire clé-valeur. Les profils de recherche avancée servent à récupérer les détails de SKU de produit/SKU de variante/composant et d'association de marchandisage pour le produit. Par exemple, supposons que vous appeliez l'API productview/byIds avec le profil HCL_findProductByIds_Details. Ce profil présente des postprocesseurs définis pour récupérer les détails de SKU, de composant et d'association de marchandisage. Ces postprocesseurs utilisent un profil pour récupérer les détails respectifs.
{ "profileName" : "HCL_findProductByIds_Details", "indexName" : "product", "lookupProfileNames" : { "productSKU" : "HCL_findCatalogEntrySKUs", "variantSKU" : "HCL_findCatalogEntrySKUsByVariantIds", "component" : "HCL_findCatalogEntryComponents", "merchandisingAssoc" : "HCL_findCatalogEntryAssociatedMerchandising" }, "query" : {- SearchCatalogEntryViewSKUQueryPostprocessor
- Ce postprocesseur utilise le profil de remorquage ci-dessous pour récupérer les détails de SKU de produit et de variante :
HCL_findCatalogEntrySKUs HCL_findCatalogEntrySKUsByVariantIds - SearchCatalogEntryViewComponentsQueryPostprocessor
- Ce postprocesseur utilise le profil HCL_findCatalogEntryComponents pour récupérer les détails des composants.
- SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor
- Ce postprocesseur utilise le profil HCL_findCatalogEntryAssociatedMerchandising pour récupérer les détails de l'association de marchandisage.
- Les profils de recherche peuvent être personnalisés de manière à utiliser des profils de recherche avancée personnalisés dans l'éventualité où vous auriez besoin de limiter les champs de réponse renvoyés pour les détails de SKU/composant/marchandisage.
- Lors de la personnalisation du profil de recherche avancée, ne supprimez pas du profil le champ de réponse qui commence par « relation ».
- lookupProfileName et lookupProfileNames sont différents. lookupProfileName sert à récupérer les détails du produit lorsqu'une image de produit Hero est activée, sur la base des détails de parentId de SKU. lookupProfileNames sert à récupérer les détails de SKU/variante/composant et d'association de marchandisage.
- Vous pouvez utiliser les exemples de profils personnalisés afin de limiter le nombre de champs renvoyés par l'API productview/byIds pour les détails de SKU/composant/marchandisage.
Utilisation d'un profil de recherche personnalisé
{ "parentProfileName" : "", "profileName" : "X_findCatalogEntrySKUs", "indexName" : "product", "query" : { "params" : [ {"maxRows" : "1200"} ], "queryFields" : ["relationship.product.id"], "provider" : [ "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByPublishedEntryOnlyExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchProductEntitlementExpressionProvider"], "preprocessor" : [], "postprocessor" : [ "com.hcl.commerce.search.internal.expression.postprocessor.SearchMainCatalogEntryViewResultQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewPriceQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor" ], "responseFields" : [ "id.catentry","id.store","buyable","id.catalog","identifier.sku.raw","name.raw","name.override.raw", "description.raw","description.override.raw","url.thumbnail","url.override.thumbnail", "url.image","url.override.image","keyword.text", "manufacturer.raw","type","prices.","path.","relationship.product.id", "relationship.item.id","attribute.source","url.seo","attachments.", "images." ] } }Vous pouvez également remplacer les profils par défaut en créant un profil personnalisé à l'aide du même nom qu'un profil par défaut. Si un profil personnalisé avec le même nom qu'un profil par défaut est disponible, le profil personnalisé est utilisé et le profil par défaut est ignoré.