Fichiers de configuration du chargement d'index pour l'indexation à partir de la base de données

Le chargement d'index nécessite des fichiers de configuration avant de pouvoir être exécuté à partir d'un navigateur Web.
Le chargement d'index nécessite trois types de fichiers de configuration, basés sur les définitions de schéma XML de la structure Chargement des données :

Fichiers de configuration du chargement d'index

Fichier de configuration du chargement d'index Fichier de définition de schéma
Fichier de configuration d'environnement (wc-indexload-env.xml) wc-dataload-env.xsd
Fichier de configuration de profile (wc-indexload-profileName.xml) wc-indexload.xsd
Fichier de configuration d'articles de profil (wc-indexload-businessobject.xml) wc-indexload-item.xsd

Fichier de configuration d'environnement (wc-indexload-env.xml)

Le fichier wc-indexload-env.xml contient des informations de contrôle d'environnement et des propriétés globales requises par le chargement d'index, y compris un programme d'écriture de données commun et une source de données à utiliser pour conserver les données.

Le fichier wc-indexload-env.xml ne nécessite généralement pas de personnalisation. Vous pouvez utiliser l'exemple de fichier par défaut tel quel.

Exemple : wc-indexload-env.xml

<_config:DataLoadEnvConfiguration
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../../../xml/config/xsd/wc-dataload-env.xsd" 
	xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config">

	<_config:DataSource reference="com.ibm.commerce.foundation.server.services.search.datasource" />

	<_config:DataWriter className="com.ibm.commerce.foundation.internal.server.services.indexload.writer.SolrIndexLoadWriter" >
		 <_config:DataLoadBatchService className="com.ibm.commerce.foundation.server.services.indexload.writer.solr.SolrIndexLoadBatchService" />
	</_config:DataWriter>

</_config:DataLoadEnvConfiguration>

Fichier de configuration de profile (wc-indexload-profileName.xml)

Le fichier wc-indexload-profileName.xml contient des attributs de performance configurables et des configurations d'articles de chargement.

Les noms de profil que vous définissez dans les fichiers de configuration sont ensuite remplacés en tant que paramètre URL lorsque vous appelez Chargement d'index dans un navigateur Web.

Les configurations d'articles de charge sont répertoriées dans la section ordre de charge de ce fichier. Elles sont traitées dans le même ordre qu'elles sont spécifiées.

Elles peuvent contenir une ou plusieurs définitions de LoadItem, chaque configuration LoadItem spécifiant la configuration LoadItem spécifique et la cible coreName. Plusieurs LoadItems sont exécutés en parallèle, sans séquence.

Exemple : wc-indexload-price.xml

<_config:LoadItem name="ExternalPrice-1" businessObjectConfigFile="wc-indexload-price-sql.xml">
			<_config:property name="coreName" value="MC_10001_CatalogEntry_Price_generic" />
			<_config:property name="groupName" value="1" />
	  </_config:LoadItem>

Les attributs de performance configurables suivants s'appliquent aux fichiers de configuration de profil :
batchSize
Le seuil à partir duquel les documents sont stockés en mémoire de façon temporaire.
La valeur par défaut est 1. Si une valeur de 0 est spécifiée, la validation a lieu une fois l'article de charge exécuté.
commitCount
Le seuil à partir duquel les documents sont stockés en dur à partir de la mémoire.
Vous pouvez définir la valeur commitCount sur 0 si vous utilisez une validation basée sur la mémoire. Pour plus d'informations, voir Réglage de Chargement d'index.
ThreadLaunchTimeDelay
Le temps en millisecondes à attendre avant de démarrer une nouvelle unité d'exécution pour éviter de surcharger le système au démarrage.
La valeur par défaut est 1000.
OptimizeAfterIndexing
Indique si Chargement d'index effectue l'optimisation de l'index après validation.
Remarque : L'exécution de l'optimisation après une indexation complète améliore les performances d'exécution. Toutefois, cela augmente le temps d'indexation global.
StatusRefreshInterval
Le temps maximum en secondes à attendre avant d'actualiser le statut Chargement d'index et de l'afficher dans le journal administratif.
La valeur par défaut est 300. Utilisez une valeur -1 pour désactiver ce service.
DocumentSizeSamplingInterval
L'intervalle de temps en secondes pour calculer la taille du document indexé. Utilisez -1 pour désactiver le service. La valeur par défaut est 300.
IndexHeightCacheHint
Un nombre qui indique au système de déterminer la taille des caches applicables pour la hauteur d'index utilisée lors de l'indexation.
IndexWidthCacheHint
Un nombre qui indique au système de déterminer la taille des caches applicables pour la largeur d'index utilisée lors de l'indexation.

Fichier de configuration d'articles de profil (wc-indexload-businessobject.xml)

Le fichier wc-indexload-businessobject.xml contient des configurations détaillées de DataLoader, qui incluent les valeurs dataload className, DataReader et BusinessObjectBuilder. SolrIndexLoadQueryLoader est utilisé pour charger des objets à partir de la base de données.
Exemple : wc-indexload-price-sql.xml

<_config:DataLoader className="com.ibm.commerce.foundation.server.services.indexload.loader.solr.SolrIndexLoadQueryLoader" >
Les attributs de performance configurables suivants s'appliquent aux fichiers de configuration d'articles de profil :
ParallelThreads
Lit les données en parallèle. Il précise le nombre maximum d'unités d'exécution du chargeur qui peuvent être envoyées par le gestionnaire de travaux de recherche. L'unité d'exécution du chargeur lit les données en parallèle, partageant le programme d'écriture des données.
Une valeur vide ou 1 n'indique aucune indexation parallèle.
ParallelLowerRangeSQL
Requêtes SQL qui obtiennent les premières clés.
Les requêtes SQL peuvent être utilisées pour spécifier que indexLoad ne charge que des parties des objets à partir de la base de données.
ParallelUpperRangeSQL
Requêtes SQL qui obtiennent les clés finales.
ParallelNextRangeSQL
Une instruction SQL qui détermine l'identificateur suivant lorsqu'un l'identificateur de plage vide est détecté à partir de la plage parallèle. En règle générale, la valeur NextStartKey est la firstKey, et la valeur nextEndKey est firstKey+prefetchSize-1.
ParallelLowerRange
Une valeur codée en dur qui suit les clés de plage inférieures. S'il est défini, il s'agit d'un nombre absolu pour la plage inférieure et remplace la valeur ParallelLowerRangeSQL.
ParallelUpperRange
Une valeur codée en dur qui suit les clés de plage supérieures. S'il est défini, il s'agit d'un nombre absolu pour la plage supérieure et remplace la valeur ParallelUpperRangeSQL.
ParallelPrefetchSize
Détermine la quantité de données à lire en une seule exécution, lorsque le lecteur exécute une requête à partir de la base de données. S'il est défini, le temps d'exécution divise toute la plage de données en fragments pour éviter de surcharger le segment de mémoire de tri de base de données avec un jeu de résultats de requête trop volumineux
La valeur par défaut est 10000.
ParallelDeltaUpdate
Détermine si le jeu de résultats SQL est fusionné dans un document indexé existant qui contient une clé primaire correspondante. Cette opération de mise à jour delta équivaut à la fonction Mise à jour atomique fournie par Solr.
Le fichier de configuration d'articles de profil contient une section portant sur le lecteur de données qui définit la façon dont les données peuvent être lues et insérées dans l'index. Deux lecteurs de données sont fournis par défaut :
com.ibm.commerce.foundation.server.services.indexload.reader.solr.SolrIndexLoadQueryReader
Un chargeur SQL simple qui lit les données physiques d'origine de la source de données en parallèle tel que spécifié par les fichiers de configuration.
com.ibm.commerce.foundation.server.services.indexload.reader.solr.SolrIndexLoadQueryMultiplexReader
Nécessite que l'entité d'index dispose de la propriété KeyFieldName définie et d'une seule zone de clé primaire. La colonne de base de données mappée à cette zone d'index de clé primaire est utilisée comme l'identificateur de l'entrée d'index.
Il est utilisé de la manière suivante :
  • La propriété KeyFieldName est le nom de la zone d'index de la clé primaire.
  • La balise query est la requête SQL de base de données à utiliser et doit être ordonnée par la zone de clé primaire.
  • Plusieurs balises ColumnMapping peuvent être utilisées, chacune mappée à une colonne de table de base de données (nom) avec un nom de zone d'index (valeur).
  • La section DynamicFields permet de définir une liste de zones dynamiques. Le multiplexage est appliqué à cette zone avec le nom de colonne comme valeur résolue depuis dynamicFieldName et la valeur de cette colonne comme valeur résolue depuis dynamicFieldValue. En outre, dynamicFieldName et dynamicFieldValue peuvent être utilisés en tant que modèle, où d'autres noms de variables de zones peuvent être déclarés. Un paramètre facultatif, indexingMode, avec sa valeur par défaut définie sur replace, est utilisé pour définir le comportement permettant de gérer plusieurs valeurs dans cette colonne dynamique. append et sum sont d'autres opérations prises en charge, où append permet de manipuler des zones d'index à plusieurs valeurs, et sum permet d'additionner toutes les valeurs.