Configurar el preprocesador de búsqueda

En esta lección, modificará el archivo de configuración de preprocesador para dar soporte a los datos personalizados. Puede añadir soporte para los datos personalizados añadiendo un archivo de configuración personalizado para hacer referencia a las clases de Java de procesamiento necesarias y a la información de tabla de calificación de clientes temporal. Las tareas de preproceso se controlan mediante los archivos XML wc-dataimport-preprocess. Los archivos contienen definiciones de tabla, metadatos de esquema de base de datos y referencias a las clases Java que se utilizan en los pasos de preproceso.

About this task

Los datos de valoraciones de clientes se preprocesan en dos pasos:
  1. En primer lugar, se cargan los datos en una tabla temporal
  2. A continuación, se resuelven las restricciones referenciales internas de HCL Commerce, y los datos resueltos se cargan en una tabla secundaria. Los datos de la tabla secundaria se utiliza para fines de indexación.
Estos datos se procesan en dos pasos, ya que los datos de valoraciones externos no contienen referencias a identificadores internos como, por ejemplo, los identificadores CATENTRY.CATENTRY_ID y CATENTRY.MEMBER_ID. En esta guía de aprendizaje, los datos de valoraciones hacen referencia a los valores de la columna de base de datos CATENTRY.PARTNUMBER. El CATENTRY_ID se resuelve a partir de los valores PARTNUMBER y MEMBER_ID. El valor MEMBER_ID que se utiliza para esta guía de aprendizaje se establece en el fragmento de código proporcionado.

Procedure

  1. Copie el archivo Ratings.xml de ejemplo en un directorio cualquiera dentro de su entorno de desarrollo. Este archivo se incluye en el archivo comprimido searchindexratings.zip que ha descargado de la introducción de la guía de aprendizaje. Como ejemplo, los pasos siguientes tienen el archivo incluido dentro del directorio de HCL Commercebin. Este archivo XML incluye evaluaciones de clientes de ejemplo, que se cargan en la base de datos y que puede utilizar para desarrollar las clasificaciones del producto con la búsqueda de HCL Commerce. Si desea incluir más datos de valoraciones, puede editar el archivo.
  2. En el programa de utilidad gestor de archivos, vaya al directorio workspace_dir\WC\xml\search\dataImport\v3\dbtype\CatalogEntry, donde dbtype es el tipo de base de datos del entorno, por ejemplo, DB2.

    .

  3. En esa carpeta, cree un archivo XML y asígnele el nombre wc-dataimport-preprocess-custom.xml.
  4. Añada el código siguiente en el nuevo archivo.
     <?xml version="1.0" encoding="UTF-8"?> <_config:DIHPreProcessConfig xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../../xsd/wc-dataimport-preprocess.xsd "> <!-- load ratings into temp table --> <_config:data-processing-config processor="com.mycompany.commerce.preprocess.StaticRatingsDataPreProcessor" batchSize="500"> <_config:table definition="CREATE TABLE TI_RATING_TEMP ( PART_NUMBER VARCHAR(256),RTYPE VARCHAR(256), RATING VARCHAR(256))" name="TI_RATING_TEMP"/> <_config:query sql=""/> <_config:mapping> <_config:key queryColumn="CATENTRY_ID" tableColumn="CATENTRY_ID"/> <_config:column-mapping> <_config:column-column-mapping> <_config:column-column queryColumn="" tableColumn="" /> </_config:column-column-mapping> </_config:column-mapping> </_config:mapping> <!-- this property is added new to locate the input file path instead of hard coding it to be in WC\bin --> <_config:property name="inputFile" value="WCDE_installdir\bin\Ratings.xml"/> </_config:data-processing-config> <_config:data-processing-config processor="com.mycompany.commerce.preprocess.StaticRatingsDataPopulator" batchSize="500"> <_config:table definition="CREATE TABLE TI_RATING ( CATENTRY_ID BIGINT NOT NULL, PART_NUMBER VARCHAR(256),RTYPE VARCHAR(256), RATING VARCHAR(256))" name="TI_RATING"/> <_config:query sql="insert into TI_RATING ( catentry_id,part_number, rating,rtype ) select catentry_id,part_number,rating,rtype from catentry,ti_rating_temp where catentry.partnumber=ti_rating_temp.part_number and catentry.member_id=7000000000000000101"/> <_config:mapping> <_config:key queryColumn="CATENTRY_ID" tableColumn="CATENTRY_ID"/> <_config:column-mapping> <_config:column-column-mapping> <_config:column-column queryColumn="" tableColumn="" /> </_config:column-column-mapping> </_config:column-mapping> </_config:mapping> </_config:data-processing-config> </_config:DIHPreProcessConfig> 
    Notes:
    • Asegúrese de que todos los valores de ID de miembro y el valor de propiedad inputFile sean los correctos para la tienda y el entorno. La propiedad inputFile debe apuntar al archivo XML que incluye los datos de clasificación de clientes.
    • La primera instancia del elemento <_config:data-processing-config> hace referencia a la clase Java com.mycompany.commerce.preprocess.StaticRatingsDataPreProcessor, que se utiliza para cargar datos mediante el atributo de procesador. Este elemento define la definición de tabla para la primera tabla temporal, TI_RATING_TEMP, utilizando el subelemento <_config:table>. Los subelementos restantes no se utilizan y aseguran que el XML esté bien formado.
    • El segundo <_config:data-processing-config> hace referencia a la clase Java com.mycompany.commerce.preprocess.StaticRatingsDataPopulator, responsable de leer los datos que produce la primera etapa del preproceso y resuelve los identificadores internos. Este elemento define la definición de tabla para la tabla temporal secundaria, TI_RATING, que almacena los datos resueltos. El subelemento <_config:query> define el SQL que se utiliza para resolver y cargar los datos.
    • Para el entorno de ejecución, la propiedad inputFile debe apuntar a la ubicación donde el archivo Ratings.xml se encuentra dentro del contenedor.
    • Para bases de datos Oracle, sustituya la sentencia CREATE TABLE por lo siguiente: CREATE TABLE TI_RATING ( CATENTRY_ID NUMBER NOT NULL, PART_NUMBER VARCHAR(256),RTYPE VARCHAR(256), RATING VARCHAR(256));.
    • No verá los cambios que realice para preprocesar los archivos de configuración XML hasta que ejecute un comando DROP TABLE en la tabla correspondiente.
  5. Guarde y cierre el archivo
  6. Cree las clases Java de preprocesador en el entorno para el preproceso de los datos personalizados. El procedimiento siguiente crea archivos StaticRatingsDataPopulator.java y StaticRatingsDataPreProcessor.java de ejemplo. Estos archivos incluyen código de ejemplo solo para esta guía de aprendizaje. Si tiene que indexar datos diferentes, deberá definir sus propios archivos Java personalizados.
    1. Abra HCL Commerce Developer y vaya a la vista Explorador de empresa.
    2. Expanda WebSphereCommerceServerExtensionsLogic > src
    3. Haga clic en el botón derecho del ratón en src y seleccione Importar.
    4. En el diálogo Importar, expanda General. Seleccione Sistema de archivos > Siguiente.
    5. Vaya al directorio donde ha descargado y extraído el archivo comprimido searchindexratings.zip del tema de introducción de esta guía de aprendizaje. Seleccione el directorio src dentro del archivo extraído, y Haga clic en Aceptar.
    6. Seleccione el recuadro de selección que aparece junto al directorio src y Haga clic en Finalizar.
      Los paquetes siguientes deben importarse en el proyecto WebSphereCommerceServerExtensionsLogic dentro del directorio src:
      • com.mycompany.commerce.preprocess
      • com.mycompany.commerce.preprocess.rating
    Note: El RatingXMLReader.java dentro del paquete com.mycompany.commerce.preprocess.rating es una clase Java simple que toma un nombre de archivo XML y analiza el archivo. El formato del XML decide cómo se lleva a cabo la implementación de esta clase. El formato del XML y el modo en que se analizará se dejan abiertos. Por ejemplo, el fragmento de código siguiente es un formato de ejemplo del archivo Ratings.xml.
    
    <?xml version="1.0" encoding="utf-8"?>
    <customInfo>
      <product partNumber="AC-01">
        <rating type="quality">
          <averageRating>1.7</averageRating>
          <reviewCount>60</reviewCount>
        </rating>
      </product>
      <product partNumber="AC-0101">
        <rating type="quality">
          <averageRating>4.6</averageRating>
          <reviewCount>85</reviewCount>
        </rating>
      </product>
    </customInfo>
    
  7. Empaquete las clases dentro de un archivo JAR en el directorio WC_eardir para que los programas de utilidad del preprocesador puedan localizar las clases durante el tiempo de ejecución.
    1. Exporte el paquete WebSphereCommerceServerExtensionsLogic en un archivo JAR en un directorio temporal. Asegúrese de que asigna al archivo el nombre WebSphereCommerceServerExtensionsLogic.
    2. Copie el archivo WebSphereCommerceServerExtensionsLogic.jar exportado del directorio temporal al directorio WC_eardir de su entorno.