HCL Commerce Version 9.1.12.0 or later

Elección del modelo de índice

Tiene dos opciones para indexar tiendas de sitio ampliado (eSite), el modelo de indexación de las tiendas de eSite heredado o el modelo de tienda con elementos de catálogo (CAS). Se recomienda el modelo CAS debido a su velocidad y escalabilidad.

En el modelo de indexación de tiendas de eSite utilizado antes de la versión 9.1.11, cada eSite mantiene su propia copia de los documentos indexables (como catálogos, categorías y productos). En este modelo, compilará el índice por separado para cada tienda eSite. Este modelo de indexación de tiendas de eSite ofrece ciertas ventajas mediante la distribución de los recursos y en la autonomía de cada eSite Sin embargo, este enfoque no escala a un gran número de eSites. Por este motivo, se ha introducido un enfoque de indexación alternativo para eSites, el modelo de índiced de tienda con elementos (CAS).

Si mantiene muchas tiendas eSite, el modelo CAS es el más eficiente de las dos formas en las que puede indexar eSites. En el modelo CAS, los catálogos, las categorías y los productos compartidos mantienen una copia. Solo necesita compilar el índice una vez para todas las tiendas eSite.

Si mantiene un pequeño conjunto de eSites o si tiene personalizaciones, puede utilizar el modelo de indexación de tiendas de eSite que era estándar en las versiones anteriores de HCL Commerce. Tenga en cuenta que solo puede utilizar uno de los modelos a la vez.

Indexación de tiendas de eSite

En el modelo de indexación de tiendas de eSite, cada etapa del proceso envía actualizaciones de todos sus productos a Elasticsearch. Este enfoque tiene algunas ventajas, ya que los impactos del escaparate relacionados con las actualizaciones de las búsquedas están aislados en una sola tienda. También proporciona una mayor relevancia a las búsquedas cuando se producen alteraciones temporales y reservas del idioma, y permite que cada tienda escale de forma independiente. Puede encontrar estas características ventajosas si mantiene un pequeño conjunto de tiendas eSite con diferentes expectativas de tráfico e inventario.

El modelo incluye ciertas expectativas de procesamiento. En el diseño de índices basados en eSite, cada eSite conserva su propia copia de los documentos (catálogos, categorías y productos). El índice debe compilarse para cada tienda eSite. Si tiene un gran número de tiendas eSite, este diseño no escala bien.

Indexación de tiendas con elementos

Las razones principales por las que se prefiere el modelo CAS son las siguientes:
Escalabilidad
El modelo CAS le permite realizar indexaciones en la tienda con elementos de catálogo en lugar de a nivel de sitio ampliado.
Compatibilidad
Las API de escaparate existentes son compatibles con las versiones anteriores y generalmente no afectarán a las personalizaciones existentes durante las actualizaciones.
Rendimiento
Las API de escaparate existentes deben ofrecer un rendimiento similar al utilizar el modelo de indexación CAS, en comparación con las que utilizan el modelo de indexación de sitio ampliado.

El comando de indexación

En el modelo de indexación de tiendas de eSite, el endpoint de REST es
POST http://Ingest Server:Ingest Port/connectors/auth.reindex/run?storeId=eSite Store Id
Donde eSite Store Id es el ID numérico de una tienda eSite (1 en la configuración predeterminada). Si hay más de una tienda eSite, deberá ejecutar este servicio varias veces, una vez para cada tienda de eSite. Por ejemplo:
POST http://myingestserver:30800/connectors/auth.reindex/run?storeId=1
El endpoint para el proceso de indexación de tiendas con elementos es el siguiente:
POST http://Ingest Server:Ingest Port/connectors/auth.reindex.cas/run?storeId=Catalog Asset Store Id
Donde Catalog Asset Store Id es el ID numérico de una tienda con elementos de catálogo; por ejemplo, en los catálogos de ejemplo HCL Commerce, puede utilizar 10501 para Aurora B2B CAS o 12001 para Marketplace. Este comando indica al sistema que debe compilar índices para todas las tiendas eSite de esta tienda con elementos de catálogo. Solo hay un flujo lógico para el proceso de indexación, independientemente del número de eSites, idiomas o catálogos. Por ejemplo:
POST http://myingestserver:30800/connectors/auth.reindex.cas/run?storeId=10501

Activación del modelo CAS

La indexación de eSite está activada de forma predeterminada. Si desea utilizar el modelo CAS, actívelo estableciendo un distintivo en la tabla de bases de datos STORECONF.
Table 1. Modelo de indexación STORECONF
STOREENT_ID NAME VALUE
0 wc.search.CASIndexModel true
Se puede utilizar el siguiente SQL para habilitar modelos CAS en todas las tiendas:
UPDATE STORECONF SET VALUE='true' WHERE name = 'wc.search.CASIndexModel' AND STOREENT_ID = 0;

Si el ID de tienda es un ID de tienda con elementos de catálogo y el valor es true, todas las tiendas de eSite de esta tienda con elementos de catálogo utilizarán el modelo de tienda con elementos. El ID de tienda debe ser un ID de tienda con elementos de catálogo o 0 (nivel de sitio). El servicio de pasarela de NiFi busca en esta tabla para averiguar si una tienda tiene el modelo de indexación de tiendas con elementos o no. Si el valor es true, se utiliza el modelo de tienda con elementos; si el valor es false o no se ha definido en dicha fila, se utiliza el modelo de indexación de eSite.

Si la ID de tienda se establece en 0, todas las tiendas con elementos de catálogo y las tiendas eSite subordinadas utilizarán el modelo de tienda con elementos.

Soporte de migración y personalización heredado

HCL Commerce Search es compatible tanto con la indexación de tiendas de eSite como con la indexación de tiendas con elementos. Si tiene personalizaciones de Ingest y de consulta de eSite que se ven afectadas por los cambios en el esquema de índices y en el SQL, es posible que tenga que migrarlas al cambiar al modelo CAS.

Un valor de la tabla de bases de datos STORECONF controla cuál es el modelo de índice que se utiliza. Si desea seguir utilizando el modelo eSite (por ejemplo, si tiene un gran número de personalizaciones que presuponen que se utilizará dicho modelo), puede seguir utilizándolo. Si desea utilizar en su lugar la modalidad de índice CAS, consulte Configuración de tiendas con elementos de catálogo para obtener instrucciones sobre cómo activarla.

Una vez establecido el distintivo, vuelva a compilar el índice, ya que el esquema habrá cambiado. Es posible que tenga que modificar las personalizaciones de NiFi basándose en el nuevo esquema, sin embargo, ninguno de los elementos del eSite se habrá eliminado del esquema tiendas con elementos.

Si ha realizado personalizaciones en el servicio de consulta, es posible que tenga que realizar los cambios correspondientes allí. No hay cambios en la API del servicio de consulta; sin embargo, se requiere la versión 9.1.11 o una versión posterior del servicio de consulta.

Restriction: La reserva del idioma no es compatible con el modelo CAS. Sin embargo, no inhabilite el distintivo de la reserva del idioma al utilizar el modelo CAS.

Configuración para indexar un inventario para el centro de despacho de pedidos

La capacidad de activar o desactivar el inventario de indexación para todos los centros de despacho de pedidos se ha introducido como una nueva configuración denominada flow.inventory.indexFulfillmentCenter. El inventario a nivel de tienda se indexará junto con un inventario del centro de despacho de pedidos predeterminado de la tienda si flow.inventory.indexFulfillmentCenter está establecido en "false". Además, se indexará el inventario a nivel de tienda y el inventario de cada centro de despacho de pedidos si flow.inventory.indexFulfillmentCenter se establece en "true".

Se utiliza una invocación PATCH similar a la siguiente para habilitar flow.inventory.indexFulfillmentCenter:
http://data-query/search/resources/api/v2/configuration?nodeName=ingest&envType=auth

Donde "data-query" es la dirección del contenedor de Docker de la consulta de datos.

Método: PATCH

Body:
{
    "global": {
        "connector": [
            {
                "name": "attribute",
                "property": [
                    

{                         "name": "flow.inventory.indexFulfillmentCenter",                         "value": "true"                     }
        
                ]
            }
        ]
    }
}