Archivos de configuración de carga de índice para la indexación desde la base de datos

La carga de índice necesita los archivos de configuración antes de poder ejecutarse desde un navegador web.
La carga de índice necesita tres tipos de archivos de configuración basándose en las definiciones de esquema XML de la infraestructura de carga de datos:

Archivos de configuración de carga de índice

Archivo de configuración de carga de índice Archivo de definición de esquema
Archivo de configuración del entorno (wc-indexload-env.xml) wc-dataload-env.xsd
Archivo de configuración de perfil (wc-indexload-profileName.xml) wc-indexload.xsd
Archivo de configuración de elemento de perfil (wc-indexload-businessobject.xml) wc-indexload-item.xsd

Archivo de configuración del entorno (wc-indexload-env.xml)

El archivo wc-indexload-env.xml contiene información de control de entorno y las propiedades globales que se necesitan para la carga de índice, incluido un origen de datos y grabador de datos común que se utilizará para persistir los datos.

El archivo wc-indexload-env.xml no suelen requerir personalización. Puede utilizar el archivo de ejemplo predeterminado tal cual.

Ejemplo: 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>

Archivo de configuración de perfil (wc-indexload-profileName.xml)

El archivo wc-indexload-profileName.xml contiene atributos de rendimiento configurables y una o varias definiciones de elementos de carga.

Los nombres de perfil que defina en los archivos de configuración se sustituyen a continuación como un parámetro de URL cuando se llama a la carga de índice en un navegador web.

Las configuraciones de elemento de carga se listan bajo la sección de orden de carga de este archivo. Se procesan en el mismo orden en el que se especifican.

Puede contener una o varias definiciones LoadItem, con cada configuración de LoadItem especificando la configuración de LoadItem específica y el destino de coreName. Varios LoadItems se ejecutan en paralelo, sin secuencia.

Ejemplo: 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>

Se aplican los siguientes atributos de rendimiento configurables a los archivos de configuración de perfil:
batchSize
Umbral cuando los documentos se comprometen de forma flexible en la memoria.
El valor predeterminado es 1. Si se especifica un valor de 0, no compromete hasta que finaliza el elemento de carga.
commitCount
Umbral cuando los documentos se comprometen de forma fija en el disco de la memoria.
Puede utilizar un commitCount de 0 si utiliza un compromiso basado en memoria. Para obtener más información, consulte Ajuste de la carga de índice.
ThreadLaunchTimeDelay
Cantidad de tiempo en milisegundos que se debe esperar antes de iniciar otra hebra nueva para evitar sobrecargar el sistema en el arranque.
El valor predeterminado es 1000.
OptimizeAfterIndexing
Indica si la carga de índice realiza la optimización de índice después del compromiso.
Nota: Si se realiza la optimización tras una indexación completa, mejora el rendimiento en tiempo de ejecución; sin embargo, aumenta el tiempo de indexación general.
StatusRefreshInterval
Cantidad máxima de tiempo en segundos a esperar antes de renovar el estado de carga de índice actual y visualizarlo en el registro administrativo.
El valor predeterminado es 300. Utilice un valor de -1 para inhabilitar el servicio.
DocumentSizeSamplingInterval
rango de tiempo en segundos para calcular el tamaño del documento indexado. Utilice -1 para inhabilitar el servicio. El valor predeterminado es 300.
IndexHeightCacheHint
Un número que proporciona sugerencias al sistema para determinar el tamaño de la memorias caché aplicables a la altura de índice que se utiliza durante la indexación.
IndexWidthCacheHint
Un número que proporciona sugerencias al sistema para determinar el tamaño de las memorias caché aplicables para la anchura de índice que se utiliza durante la indexación.

Archivo de configuración de elemento de perfil (wc-indexload-businessobject.xml)

El archivo wc-indexload-businessobject.xml contiene configuraciones de DataLoader detalladas, que incluyen el nombre de clase, el lector de datos y el generador de objetos de negocio de carga de datos. SolrIndexLoadQueryLoader se utiliza para cargar objetos de la base de datos.
Ejemplo: wc-indexload-price-sql.xml

<_config:DataLoader className="com.ibm.commerce.foundation.server.services.indexload.loader.solr.SolrIndexLoadQueryLoader" >
Se aplican los siguientes atributos de rendimiento configurables a los archivos de configuración de elemento de perfil:
ParallelThreads
Lee datos en paralelo. Especifica el número máximo de hebras de cargador, que el gestor de trabajo de búsqueda puede asignar. La hebra de cargador lee los datos en paralelo, compartiendo el grabador de datos.
Un valor vacío o 1 indican que no hay indexación paralela.
ParallelLowerRangeSQL
Consultas SQL que obtienen las primeras claves.
Las consultas SQL pueden utilizarse para especificar que indexLoad carga sólo partes de los objetos de la base de datos.
ParallelUpperRangeSQL
Consultas SQL que obtienen las claves finales.
ParallelNextRangeSQL
Una sentencia SQL que determina el siguiente identificador disponible cuando se detecta un ID de rango vacío desde el rango paralelo. Normalmente, el valor de nextStartKey es firstKey y nextEndKey es firstKey+prefetchSize-1.
ParallelLowerRange
Valor no modificable que realiza el seguimiento de las teclas de rango inferior. Si se define, es un número absoluto para el rango inferior y altera el valor de ParallelLowerRangeSQL.
ParallelUpperRange
Valor no modificable que realiza el seguimiento de las teclas de rango superior. Si se define, es un número absoluto para el rango superior y altera el valor de ParallelUpperRangeSQL.
ParallelPrefetchSize
Determina la cantidad de datos que se deben leer en una ejecución, cuando el lector realiza una consulta de la base de datos. Si se define, el tiempo de ejecución divide el rango de datos entero en fragmentos para evitar sobrecargar el almacenamiento dinámico de ordenación de base de datos con un conjunto de resultados de consulta demasiado grande
El valor predeterminado es 10000.
ParallelDeltaUpdate
Determina si el conjunto de resultados SQL se fusiona en un documento indexado existente que contiene una clave primaria coincidente. Esta operación de actualización delta es equivalente a la característica de Actualización atómica proporcionada por Solr.
El archivo de configuración de elementos de perfil contiene una sección de lector de datos que define cómo se pueden leer e insertar en el índice los datos. De forma predeterminada, se proporcionan dos lectores de datos:
com.ibm.commerce.foundation.server.services.indexload.reader.solr.SolrIndexLoadQueryReader
Un cargador de SQL simple que lee los datos físicos originales del origen de datos en paralelo como se especifica en los archivos de configuración.
com.ibm.commerce.foundation.server.services.indexload.reader.solr.SolrIndexLoadQueryMultiplexReader
Necesita que la entidad de índice tenga la propiedad KeyFieldName que se ha definido y sólo un campo de clave primaria. La columna de base de datos que se correlaciona con este campo de índice de clave primaria se utiliza como el identificador de la entrada de índice.
Se utiliza de la forma siguiente:
  • La propiedad KeyFieldName es el ​​Campo de índice​ Nombre​ para la clave primaria.
  • El código query es la consulta SQL de base de datos a utilizar y se debe ordenar por el campo de clave primaria.
  • Se pueden utilizar varios códigos ColumnMapping, donde cada uno se correlaciona con una columna de tabla de base de datos (nombre) con un ​​Campo de índice​ Nombre​ (valor).
  • La sección DynamicFields permite definir una lista de campos dinámicos. En este campo se aplica la multiplexación con el nombre de columna como valor resuelto de dynamicFieldName y el valor de esta columna como valor resuelto de dynamicFieldValue. Además, dynamicFieldName y dynamicFieldValue pueden utilizarse como plantilla donde se pueden declarar otros nombres de variable de campo. Se utiliza un parámetro opcional, indexingMode, con su valor predeterminado como replace, para definir el comportamiento para manejar varios valores en esta columna dinámica. Otras operaciones soportadas son append y sum, donde append es para manejar campos de índice de varios valores y sum es para sumar todos los valores.