Imagen de producto de Hero

La función de imagen del producto Elasticsearch Hero permite agrupar todos los SKU del producto en el momento de la consulta. En este tema se describe cómo funciona la imagen del producto Hero. Si desea aprender a configurar la imagen del producto Hero, consulte Configuración de una imagen de producto de Hero (agrupación de productos)

El ID de producto se identifica basándose en el valor de grupo del SKU más relevante para representar el grupo que se devuelve en los resultados de búsqueda para proporcionar relevancia visual.

Se indexa un campo de índice común para todos los SKU subyacentes del producto, que se utiliza más adelante como campo de agrupación. Al consultar el índice de búsqueda, la sección que se contrae se añade a la consulta Elasticsearch. Como resultado, la respuesta de búsqueda se estructura en hits y innerHits, en lugar de un resultado de Búsqueda. Cada grupo contiene hits e innerHits de documentos relacionados. Se aplican el número de filas y la paginación al número de grupos, en lugar de hacerlo al número de documentos de Solr devueltos.

Si la imagen del producto Hero está habilitada y si no pasa ningún valor searchType a través del parámetro de solicitud o en el perfil, el valor searchType tendrá como valor predeterminado 5000 (Constantes de tipo de coincidencia de expresión de búsqueda - (type:product o (type:variant y state:false)). Si el valor searchType pasa a través del parámetro de solicitud o dentro del perfil de búsqueda, la imagen de producto de Hero se inhabilitará.

Proceso de selección de resultado de imagen del producto Hero

El diagrama siguiente muestra la respuesta de grupo de búsqueda de ejemplo. Basándose en la respuesta del grupo, se realiza una segunda llamada para buscar al propietario del grupo:

Donde:
  • Una consulta de búsqueda genera seis documentos de Elasticsearch coincidentes, que se agrupan en dos grupos diferentes.
  • Cada documento devuelve el SKU más relevante en los resultados principales.
  • A partir del SKU más relevante de cada grupo, el ID de propietario de grupo se encuentra utilizando el campo relationship.product.group. Se realiza una segunda llamada para buscar los detalles del producto.

Perfiles de búsqueda y procesadores de imágenes del producto Hero

SearchRelevancyByProductGroupingPreprocessor se utiliza para leer los parámetros de agrupación de un perfil de búsqueda y añadirlos a la consulta de búsqueda.

El SearchRelevancyByProductGroupingPostprocessor se añade como el primer posprocesador para manejar la respuesta de grupo de búsqueda de términos. El posprocesador solo selecciona un Elasticsearch de cada grupo y realiza una segunda llamada para buscar el producto propietario del grupo y crea búsquedas con resultados para que las consuman otros posprocesadores. A continuación, se devuelve el resultado en la respuesta de REST final.

El servicio RESt productView bySearchTermServicespuede utilizar los perfiles de búsqueda HCL_findProductsBySearchTerm.

El SearchBrowseRelevancyByProductGroupingPostprocessor se añade como el primer posprocesador para manejar la respuesta de grupo de búsqueda de navegación. El posprocesador solo selecciona un documento de Elasticsearch de cada grupo y realiza una segunda llamada para buscar el producto propietario del grupo. Crea resultados de búsqueda para que los usen otros posprocesadores. A continuación, se devuelve el resultado en la respuesta de REST final.

El servicio REST productView byCategoryId puede utilizar los perfiles de búsqueda HCL_findProductsByCategory.

A continuación, se muestra una configuración de grupo de ejemplo definida en un perfil de búsqueda:
"group": { "enable": "false", "sort": "score desc", "field": "relationship.product.group" } 

Donde:

group
Habilitar: true
Se habilita la agrupación.
Habilitar: false
No se evalúa ninguna de las demás agrupaciones.
ordenar: puntuación desc
Controla cómo se ordenan las entradas de catálogo en cada grupo.
field
El nombre de campo por el que agrupar.

Representantes de imágenes del producto Hero

Hay un representante de grupo para cada agrupación de producto. En lugar de devolver las propiedades del propietario del grupo, se puede devolver uno de los SKU o algunas de sus propiedades junto con el propietario del grupo. O bien, en lugar de ignorar los otros miembros de grupo, el rango de precios se puede encontrar en los miembros de grupo.

El diagrama siguiente muestra el proceso de selección de producto de representante:

Donde:
  • El primer grupo contiene tres miembros de grupo.
  • Uno de los SKU está marcado con un valor de atributo de comercialización de Hero. Se selecciona ese código de artículo para que sea el representante de grupo.
  • Se realiza una segunda llamada a Elasticsearch para buscar el propietario de grupo del SKU de representante.
  • Después de recuperar el propietario de grupo, se utiliza la propiedad de representante de grupo para alterar la propiedad de propietario de grupo.
A continuación, se muestra una configuración de producto representativo de ejemplo definida en un perfil de búsqueda:
"hero": { "overrideFieldName": "url.thumbnail", "showGroupPriceRange": "false", "useMerchandiseAttribute": "false", "field": { "7741124012283334335": "Hero" } } 

Donde:

hero
overrideFieldName
Toma una lista de campos a transportar desde el SKU para anular los valores predeterminados de productBean.
showGroupPriceRange
Se habilita para que se muestre el rango de precios para el grupo entero, en lugar de solo el precio del producto, si los miembros de grupo contienen precios diferentes.
useMerchandiseAttribute
Se establece en true si está utilizando el atributo de mercancía para promocionar un código de artículo de producto. El valor predeterminado false, que mejorará el rendimiento si tiene la agrupación habilitada para examinar pero no está utilizando el atributo de mercancía para promocionar el código de artículo del producto.
7741124012283334335
El ID de atributo de búsqueda.
Note: El ID de atributo real, en este ejemplo, representa un atributo de comercialización que se asigna como un atributo descriptivo a los SKU de representante.