Remplacement des profils de recherche Query pour modifier les zones de réponse
Dans cette rubrique, vous allez apprendre à remplacer les profils de recherche Query pour modifier les zones de réponse.
Procedure
Remplacez les profils de recherche Query pour modifier les zones de réponse.
Vous pouvez remplacer les profils de recherche par défaut en créant un profil personnalisé à l'aide du même nom que le 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é. Pour des étapes détaillées sur le remplacement des profils de recherche, voir Configuration de votre profil de recherche personnalisé.
- Remplacez le profil de requête de recherche par défaut pour inclure l'attribut seller_description.raw supplémentaire dans la réponse de requête.
- Etendez le profil de recherche HCL_findCatalogEntrySKUs par défaut en ajoutant seller_description.raw dans la section responseFields du profil de recherche existant.
GET http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs - Exécutez l'appel GET pour extraire le profil de requête par défaut et exécutez l'appel PUT pour créer le profil de requête personnalisé à l'aide de la réponse de l'appel GET en tant que corps de requête après avoir ajouté l'attribut seller.description.raw dans JSON. Cela étendrait le profil de requête par défaut comme suit :
GET http://GET http://<QUERY_HOST>:<QUERY_PORT>/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs :<QUERY_PORT>/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUsPar exemple :GET http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs [ { "profileName": "HCL_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.SearchBySellerExpressionProvider", "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", "id.member", "seller.raw", "seller_description.raw", "type", "prices.*", "path.*", "relationship.product.id", "relationship.item.id", "attribute.source", "url.seo", "url.override.seo", "attachments.*", "images.*", "description.long" ] } } ] -
La réponse doit être similaire à :
{ "Profile created with name": "HCL_findCatalogEntrySKUs" } - Répétez cette étape pour le profil de recherche HCL_V2_findProductByPartNumber_Details en ajoutant seller_description.raw dans la section responseFields du profil de recherche existant.
GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details - Ajoutez seller_description.raw dans la section responseFields du profil de recherche existant pour l'utiliser comme corps de requête pour l'appel PUT ci-dessous afin de remplacer le profil de recherche HCL_V2_findProductByPartNumber_Details par défaut.
PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details{ "profileName": "HCL_V2_findProductByPartNumber_Details", "indexName": "product", "query": { "params": [ { "DynamicKitReturnPrice": "true" }, { "maxRows": "50" } ], "queryFields": [ "identifier.sku.normalized" ], "provider": [ "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchBySellerExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider", "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.SearchCatalogEntryViewSKUQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttributesQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttachmentsQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewImagesQueryPostProcessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewComponentsQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor" ], "responseFields": [ "id.catentry", "id.store", "id.catalog", "buyable", "identifier.sku.raw", "name.raw", "name.override.raw", "description.raw", "description.override.raw", "url.thumbnail", "url.override.thumbnail", "keyword.text", "manufacturer.raw", "id.member", "seller.raw", "seller_description.raw", "type", "prices.*", "path.*", "relationship.item.*", "relationship.product.id", "relationship.component.*", "subscription.type", "subscription.recurring", "url.image", "url.override.image", "description.long", "attribute.source", "kit.components", "kit.preconfigured", "kit.model", "kit.URL", "kit.default_configuration", "kit.pdks", "kit.parent.model", "kit.configurable", "kit.parent.configurable", "associations.*", "url.seo", "attachments.*", "images.*" ] } }La réponse doit ressembler à :{ "Profile created with name": "HCL_V2_findProductByPartNumber_Details" } - Redémarrez le conteneur du service Query.
Testez votre personnalisation pour vous assurer qu'elle a abouti.
Dans cette rubrique, vous avez décrit comment modifier les zones de réponse en remplaçant les profils de recherche Query.