Configuración del perfil de búsqueda personalizado

ZooKeeper almacena los perfiles con nombre en uno de sus nodos. Puede crear, actualizar, eliminar y obtener perfiles utilizando el punto final de los perfiles del servicio de consulta. Para más información sobre los perfiles HCL Commerce Search, consulte Perfiles de búsqueda.

Especificación de documento de punto final y perfil

El punto final del perfil es:
https://data_environment_hostname:30921/search/resources/api/v2/documents/profiles/profileName
Para obtener la especificación de la API de REST completa, consulte la API REST de consulta.
Cada documento de perfil está en formato .json y tiene la estructura siguiente. (En este ejemplo se muestra la característica de resaltado de Elasticsearch; para obtener más información sobre esta característica, consulte Resaltado en la guía de 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" } } } }

Para obtener una descripción de los nombres y valores de los campos, y los preprocesadores y posprocesadores disponibles, consulte Propiedades de perfiles de búsqueda.

HCL Commerce Version 9.1.13.0 or later

Perfiles de búsqueda

Puede utilizar un perfil de búsqueda si la imagen del producto Hero está habilitada. Cuando la API de búsqueda de términos tiene habilitada la agrupación, utiliza el perfil de búsqueda para obtener los detalles del propietario del grupo (producto padre). La API de búsqueda de términos utiliza el perfil HCL_findProductsBySearchTerm , que tiene una propiedad de perfil de búsqueda con el valor HCL_findCatalogEntryById. El perfil de búsqueda se define de la siguiente manera:
{ "parentProfileName" : "", "profileName" : "HCL_findProductsBySearchTerm", "lookupProfileName" : "HCL_findCatalogEntryById", "indexName" : "product", "query" : {
Internamente, el procesador SearchRelevancyByProductGroupingPostprocessor utiliza el perfil de búsqueda para recuperar los detalles del producto. De manera similar, si las imágenes de un producto Hero están habilitadas para la exploración de categorías, el perfil HCL_findProductsByCategory tiene la propiedad de perfil de búsqueda con el valor HCL_findCatalogEntryByIdForBrowse. Internamente, el procesador SearchBrowseRelevancyByProductGroupingPostprocessor utiliza el perfil de búsqueda para recuperar los detalles del producto.
{ "parentProfileName" : "", "profileName" : "HCL_findProductsByCategory", "lookupProfileName" : "HCL_findCatalogEntryByIdForBrowse", "indexName" : "product", "query" : {

Los perfiles de búsqueda se pueden definir en el perfil de búsqueda utilizando la propiedad lookupProfileNames, con un par clave-valor. Los perfiles de búsqueda se utilizan para obtener los detalles de la asociación de comercialización de sku/variant sku/component del producto para el producto. Por ejemplo, supongamos que llama a la API productview/byIds con el perfil HCL_findProductByIds_Details. Este perfil tiene postprocesadores definidos para recuperar el SKU, el componente y los detalles de la asociación de comercialización. Estos posprocesadores utilizan un perfil para recuperar los detalles correspondientes.

El perfil HCL_findProductByIds_Details se configura con perfiles de búsqueda de la siguiente manera. Si anula el perfil, asegúrese de no cambiar la clave LookupProfileNames. Si no se especifica ningún perfil de búsqueda, la llamada recurrirá a los perfiles predeterminados que se mencionan a continuación en el perfil predeterminado HCL_findProductByIds_Details.
{ "profileName" : "HCL_findProductByIds_Details", "indexName" : "product", "lookupProfileNames" : { "productSKU" : "HCL_findCatalogEntrySKUs", "variantSKU" : "HCL_findCatalogEntrySKUsByVariantIds", "component" : "HCL_findCatalogEntryComponents", "merchandisingAssoc" : "HCL_findCatalogEntryAssociatedMerchandising" }, "query" : {
Note:
SearchCatalogEntryViewSKUQueryPostprocessor
Este postprocesador utiliza el siguiente perfil de transferencia para recuperar los detalles de SKU del producto y de la variante:
HCL_findCatalogEntrySKUs HCL_findCatalogEntrySKUsByVariantIds
SearchCatalogEntryViewComponentsQueryPostprocessor
Este posprocesador utiliza el perfil HCL_findCatalogEntryComponents para recuperar los detalles de los componentes.
SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor
Este posprocesador utiliza el perfil HCL_findCatalogEntryAssociatedMerchandising para obtener detalles de la asociación de comercialización.
  • Los perfiles de búsqueda se pueden personalizar para utilizar perfiles de búsqueda personalizados en caso de que necesite limitar los campos de respuesta devueltos para detalles de sku/componente/mercancía.
  • Al personalizar el perfil de búsqueda, no elimine el campo de respuesta que comienza con "relationship" del perfil.
  • lookupProfileName y lookupProfileNames son diferentes. lookupProfileName se utiliza para obtener los detalles del producto cuando se habilita una imagen de producto Hero, según los detalles de parentId de sku. lookupProfileNames se utiliza para recuperar los detalles de la asociación de comercialización y sku/variante/componente.
  • Puede utilizar los perfiles personalizados de ejemplo proporcionados para ayudarle a limitar la cantidad de campos devueltos por la API productview/byIds para los detalles de sku/componente/mercancía.

Utilización de un perfil de búsqueda personalizado

Puede crear un perfil personalizado independiente sin heredar ningún valor predeterminado. La creación de un perfil personalizado autónomo ayudará a editar los campos que no son necesarios para los clientes, como campos de respuesta, proveedores o postprocesadores. Al restringir los campos que utiliza, puede reducir la carga útil del atributo y mejorar la eficiencia. Por ejemplo, puede crear el siguiente perfil (el parámetro parentProfileName no es un campo obligatorio y se puede dejar en blanco):
{ "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." ] } }
Note: Debe reiniciar los contenedores del servicio de consulta después de añadir o actualizar un perfil de búsqueda personalizado.

También puede alterar temporalmente los perfiles predeterminados creando un perfil personalizado utilizando el mismo nombre que un perfil predeterminado. Si está disponible un perfil personalizado con el mismo nombre que un perfil predeterminado, se utiliza el perfil personalizado y se ignora el perfil predeterminado.