HCL Commerce Version 9.1.12.0 or later

Choix de votre modèle d'index

Vous disposez de deux options pour l'indexation des magasins de site étendu (eSite), le modèle d'indexation Magasin eSite existant ou le modèle Magasin de ressources de catalogue (CAS). Le modèle CAS est recommandé en raison de sa vitesse et de son évolutivité.

Dans le modèle d'indexation Magasin eSite utilisé avant la version 9.1.11, chaque eSite conserve sa propre copie de documents indexables (tels que catalogues, catégories et produits). Dans ce modèle, vous générez l'index séparément pour chaque magasin eSite. Ce modèle d'indexation Magasin eSite offre des avantages en répartissant les ressources et dans l'autonomie de chaque eSite. Toutefois, cette approche ne s'applique pas à un grand nombre d'eSites. Pour cette raison, une autre approche d'indexation pour les eSites a été introduite, le modèle Magasin de ressources de catalogue (CAS).

Si vous gérez de nombreux magasins eSite, le modèle CAS est le plus efficace des deux méthodes d'indexation des eSites. Dans le modèle CAS, les catalogues partagés, les catégories et les produits conservent une copie. Vous n'avez besoin de générer l'index qu'une seule fois pour tous les magasins eSite.

Si vous gérez un petit ensemble d'eSites ou si vous disposez de personnalisations existantes, vous pouvez utiliser le modèle d'indexation Magasin eSite standard dans les versions précédentes d'HCL Commerce. Notez que vous ne pouvez utiliser qu'un seul des modèles à la fois.

Indexation Magasin eSite

Dans le modèle d'indexation Magasin eSite, chaque étape de processus envoie des mises à jour pour tous ses produits à Elasticsearch. Cette approche présente certains avantages, car tous les impacts de vitrine liés aux mises à jour de la recherche sont isolés dans un seul magasin. Il offre également une plus grande pertinence de recherche lorsque des remplacements et une rétromigration de langue se produisent, et il permet à chaque magasin de s'adapter indépendamment. Vous pouvez trouver ces fonctions avantageuses si vous gérez un petit ensemble de magasins eSite avec des attentes en matière de trafic et de stock différentes.

Le modèle s'accompagne de certaines attentes en matière de traitement. Dans la conception d'index basée sur eSite, chaque eSite conserve sa propre copie de documents (catalogues, catégories et produits). L'index doit être généré pour chaque magasin eSite. Si vous disposez d'un grand nombre de magasins eSite, cette conception n'est pas correctement mise à l'échelle.

Indexation Magasin de ressources

Les principales raisons pour lesquelles le modèle CAS est préféré sont les suivantes :
Evolutivité
Le CAS vous permet d'indexer au niveau du magasin de ressources de catalogue au lieu du niveau de site étendu.
Compatibilité
Les API de vitrine existantes sont compatibles avec les versions antérieures et n'affecteront généralement pas vos personnalisations existantes lors des mises à niveau.
Performances
Vos API de vitrine existantes doivent avoir des performances similaires lors de l'utilisation du modèle d'indexation CAS, par rapport à celles qui utilisent le modèle d'indexation de site étendu.

La commande d'indexation

Pour le modèle d'indexation Magasin eSite, le nœud final REST est
POST http://Ingest Server:Ingest Port/connectors/auth.reindex/run?storeId=eSite Store Id
eSite Store Id est l'ID numérique d'un magasin eSite (1 dans la configuration par défaut). S'il existe plusieurs magasins eSite, vous exécuterez ce service plusieurs fois, une fois pour chaque magasin eSite. Par exemple :
POST http://myingestserver:30800/connectors/auth.reindex/run?storeId=1
Le nœud final du processus d'indexation Magasin de ressources est :
POST http://Ingest Server:Ingest Port/connectors/auth.reindex.cas/run?storeId=Catalog Asset Store Id
Catalog Asset Store Id est l'ID numérique d'un magasin de ressources de catalogue. Par exemple, dans les exemples de catalogues HCL Commerce, vous pouvez utiliser 10501 pour le CAS B2B Aurora ou 12001 pour la place de marché. Cette commande indique au système de générer des index pour tous les magasins eSite sous ce magasin de ressources de catalogue. Il n'y a qu'un seul flux logique vers le processus d'indexation, quel que soit le nombre d'eSites, de langues ou de catalogues. Par exemple :
POST http://myingestserver:30800/connectors/auth.reindex.cas/run?storeId=10501

Activation du modèle CAS

L'indexation eSite est activée par défaut. Si vous souhaitez utiliser le modèle CAS, activez-le en définissant un indicateur dans la table de base de données STORECONF.
Table 1. Modèle d'indexation STORECONF
STOREENT_ID NAME VALUE
0 wc.search.CASIndexModel true
Les SQL suivantes peuvent être utilisées afin d'activer les modèles CAS pour tous les magasins :
UPDATE STORECONF SET VALUE='true' WHERE name = 'wc.search.CASIndexModel' AND STOREENT_ID = 0;

Si l'ID de magasin est un ID de magasin de ressources de catalogue et que la valeur est true, tous les magasins eSite sous ce magasin de ressources de catalogue utilisent le modèle Magasin de ressources. L'ID de magasin doit être un ID de magasin de ressources de catalogue ou 0 (niveau site). Le service de passerelle NiFi recherche dans cette table si un magasin est ou non le modèle d'indexation Magasin de ressources. Si la valeur est true, le modèle Magasin de ressources est utilisé. Si la valeur est false ou qu'aucune ligne de ce type n'est définie, le modèle d'indexation eSite est utilisé.

Si l'ID de magasin est défini sur 0, tous les magasins de ressources de catalogue et les magasins eSite sous-jacents utilisent le modèle Magasin de ressources.

Prise en charge de la migration et de la personnalisation existante

HCL Commerce Search prend en charge l'indexation du magasin eSite et l'indexation du magasin de ressources. Si vous disposez de personnalisations eSite Ingest et Query existantes qui sont affectées par les modifications de schéma SQL et d'index, vous devrez peut-être les migrer lors du basculement vers CAS.

Un paramètre de la table de base de données STORECONF contrôle le modèle d'index utilisé. Si vous souhaitez continuer à utiliser le modèle eSite (par exemple, si vous disposez d'un grand nombre de personnalisations existantes qui supposent ce modèle), vous pouvez continuer à l'utiliser. Si vous souhaitez plutôt utiliser le mode d'index CAS, voir Configuration des magasins de ressources de catalogue pour obtenir des instructions sur son activation.

Une fois l'indicateur défini, régénérez l'index, car le schéma aura changé. Vous devrez peut-être modifier vos personnalisations NiFi en fonction du nouveau schéma, mais aucun des éléments eSite n'a été supprimé du schéma Magasin de ressources.

Si vous avez apporté des personnalisations au service Query, vous devrez peut-être y apporter les modifications correspondantes. Il n'y a pas de modifications de l'API de service Query, mais la version 9.1.11 ou ultérieure du service Query est requise.

Restriction: La rétromigration de langue n'est pas prise en charge pour le modèle CAS. Toutefois, ne désactivez pas l'indicateur de rétromigration de langue lors de l'utilisation de CAS.

Configuration pour l'indexation du stock pour le centre de distribution

La possibilité d'activer ou de désactiver le stock d'indexation pour tous les centres de distribution a été introduite en tant que nouvelle configuration appelée flow.inventory.indexFulfillmentCenter. Le stock de niveau magasin sera indexé avec un stock du centre de distribution par défaut du magasin si flow.inventory.indexFulfillmentCenter est défini sur false. En outre, il indexera le stock au niveau du magasin et le stock de chaque centre de distribution si flow.inventory.indexFulfillmentCenter est défini sur true.

Un appel PATCH similaire à celui ci-dessous est utilisé pour activer flow.inventory.indexFulfillmentCenter :
http://data-query/search/resources/api/v2/configuration?nodeName=ingest&envType=auth

Où data-query est l'adresse de votre conteneur Docker de requête de données.

Méthode : CORRECTIF

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

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