Configuration du préprocesseur de recherche

Dans cette leçon, vous modifiez le fichier de configuration du pré-processeur pour prendre en charge les données personnalisées. Vous ajoutez la prise en charge de vos données personnalisées en ajoutant un fichier de configuration personnalisé qui fait référence aux classes Java de traitement requises et aux informations de la table de classement client temporaire. Les tâches de prétraitement sont contrôlées par les fichiers XML wc-dataimport-preprocess. Les fichiers contiennent des définitions de table, des métadonnées de schéma de base de données et des références aux classes Java utilisées dans les étapes de prétraitement.

About this task

Les données d'évaluation des clients sont prétraitées en deux étapes :
  1. Tout d'abord, les données sont chargées dans une table temporaire.
  2. Ensuite, les contraintes référentielles HCL Commerce internes sont résolues et les données résolues sont chargées dans une table secondaire. Les données de table secondaires sont utilisées à des fins d'indexation.
Ces données sont traitées en deux étapes, puisque les données des évaluations externes ne contiennent pas de références à des identificateurs internes, tels que les identificateurs CATENTRY.CATENTRY_ID et CATENTRY.MEMBER_ID. Dans ce tutoriel, les données d'évaluation font référence aux valeurs de la colonne de la base de données CATENTRY.PARTNUMBER. La valeur CATENTRY_ID est résolue à partir des valeurs PARTNUMBER et MEMBER_ID. La valeur MEMBER_ID utilisée pour ce tutoriel est définie dans le fragment de code fourni.

Procedure

  1. Copiez l'exemple de fichier Ratings.xml dans n'importe quel répertoire de votre environnement de développement. Ce fichier est inclus dans le fichier searchindexratings.zip compressé que vous avez téléchargé depuis l'introduction du tutoriel. A titre d'exemple, les étapes suivantes permettent d'inclure le fichier dans le répertoire HCL Commercebin. Ce fichier XML inclut des exemples d'évaluations de clients, que vous chargez dans votre base de données et que vous utilisez pour développer des classements de produits avec HCL Commerce Search. Si vous souhaitez inclure plus de données d'évaluation, vous pouvez modifier le fichier.
  2. Dans votre utilitaire de gestion de fichiers, accédez au répertoire workspace_dir\WC\xml\search\dataImport\v3\dbtype\CatalogEntry, où dbtype est le type de base de données de votre environnement, tel que Db2.

    .

  3. Dans ce dossier, créez un fichier XML et nommez le fichier wc-dataimport-preprocess-custom.xml.
  4. Ajoutez le code suivant à votre nouveau fichier :
     <?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:
    • Assurez-vous que les valeurs d'identification des membres et la valeur de la propriété inputFile sont correctes pour votre magasin et votre environnement. La propriété inputFile doit pointer vers le fichier XML qui inclut les données de classement des clients.
    • La première instance de l'élément <_config:data-processing-config> fait référence à la classe Java com.mycompany.commerce.preprocess.StaticRatingsDataPreProcessor, qui est utilisée pour charger les données par l'attribut processeur. Cet élément définit la définition de table de la première table temporaire, TI_RATING_TEMP, à l'aide du sous-élément <_config:table>. Les sous-éléments restants restent inutilisés et s'assurent que le XML est bien formé.
    • La deuxième valeur <_config:data-processing-config> se réfère à la classe Java com.mycompany.commerce.preprocess.StaticRatingsDataPopulator, qui est responsable de la lecture des données générées par la première étape de l'opération de prétraitement et résout les identificateurs internes. Cet élément définit la définition de table de la table temporaire secondaire, TI_RATING, qui stocke les données résolues. Le sous-règlement <_config:query> définit l'instruction SQL utilisée pour résoudre et charger les données.
    • Pour l'environnement d'exécution, la propriété inputFile doit pointer vers l'emplacement où se trouve le fichier Ratings.xml dans le conteneur.
    • Pour les bases de données Oracle, veuillez remplacer l'instruction CREATE TABLE par les éléments suivants : CREATE TABLE TI_RATING ( CATENTRY_ID NUMBER NOT NULL, PART_NUMBER VARCHAR(256),RTYPE VARCHAR(256), RATING VARCHAR(256));.
    • Vous ne verrez pas les modifications apportées aux fichiers de configuration XML de prétraitement tant que vous n'avez pas exécuté une commande DROP TABLE sur le tableau correspondant.
  5. Enregistrez et fermez le fichier.
  6. Créez les classes Java du pré-processeur dans votre environnement pour prétraiter vos données personnalisées. La procédure suivante crée des exemples de fichiers StaticRatingsDataPopulator.java et StaticRatingsDataPreProcessor.java. Ces fichiers incluent un exemple de code pour ce tutoriel uniquement. Si vous devez indexer des données différentes, vous devez définir vos propres fichiers Java personnalisés.
    1. Ouvrez HCL Commerce Developer et basculez vers la vue Explorateur d'entreprise.
    2. Développez WebSphereCommerceServerExtensionsLogic > src.
    3. Cliquez avec le bouton droit sur src et sélectionnez Importer.
    4. Dans la boîte de dialogue Importer, développez Général. Sélectionnez Système de fichiers > Suivant.
    5. Accédez au répertoire où vous avez téléchargé et extrait le fichier compressé searchindexratings.zip à partir du sujet d'introduction de ce tutoriel. Sélectionnez le répertoire src dans le fichier extrait, puis cliquez sur OK.
    6. Cochez la case en regard du répertoire src, puis cliquez sur Terminer.
      Les packages suivants doivent être importés dans le projet WebSphereCommerceServerExtensionsLogic dans le répertoire src :
      • com.mycompany.commerce.preprocess
      • com.mycompany.commerce.preprocess.rating
    Note: RatingXMLReader.java dans le package com.mycompany.commerce.preprocess.rating est une classe Java simple qui prend un nom de fichier XML et analyse le fichier. Le format du XML détermine comment l'implémentation de cette classe est effectuée. Le format du XML et la façon de l'analyser sont laissés ouverts. Par exemple, le fragment de code suivant est un exemple de format pour le fichier 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. Compressez les classes dans un fichier JAR de votre répertoire WC_eardir afin que les utilitaires puissent localiser les classes au moment de l'exécution.
    1. Exportez le package WebSphereCommerceServerExtensionsLogic dans un fichier JAR dans un répertoire temporaire. Assurez-vous de nommer le fichier WebSphereCommerceServerExtensionsLogic.
    2. Copiez le fichier WebSphereCommerceServerExtensionsLogic.jar exporté de votre répertoire temporaire vers le répertoire WC_eardir de votre environnement.