Extension du schéma d'index de base HCL Commerce Search

Le schéma d'index de base peut être étendu en fonction de vos besoins métier. Par exemple, pour séparer les données en différents index en fonction de leurs intervalles d'actualisation.

Il peut être étendu en créant un nouveau schéma d'index distinct et en l'associant à l'index de base. Dans certains cas, il est plus souhaitable de séparer les données en différents index. Dans ce scénario, vous créez un nouveau schéma d'index distinct et l'associez à l'index de base.

Par exemple, l'index de base de produit est utilisé pour stocker des données statiques pour le produit, telles que l'identificateur du produit, le nom et la brève description. Ces valeurs ne changent généralement pas souvent. Toutefois, les informations dynamiques telles que le stock ou les évaluations des produits changent plus fréquemment. Par conséquent, elles sont placées dans un index distinct, où elles peuvent être actualisées à des intervalles différents de ceux de l'index de base du produit.

Le schéma d'index de base HCL Commerce Search est personnalisé en fonction du flux suivant :
extension du schéma d'index de base HCL Commerce Search
Où :
  1. Les artefacts d'index d'extension doivent être créés en premier et placés dans un répertoire spécifique sous le répertoire d'accueil Solr déployé. La structure du schéma d'index d'extension est définie dans le fichier de configuration schema.xml Solr.

    Pour que l'index de base puisse référencer un index d'extension, le schéma d'index d'extension doit définir ce qui est similaire à une clé étrangère qui correspond au nom et au type de zone unique dans le schéma d'index de base. Le type de données de zone référencé doit être un type de données simple tel que Chaîne, Entier ou Valeur flottante. Il doit correspondre au nom et au type de clé unique de l'index de base.

    Evitez les noms de zones communs entre les index d'extension et l'index de base, autres que la zone référencée. Il est recommandé d'utiliser une convention de dénomination qui préfixe les zones d'index d'extension pour éviter les collisions de noms.

  2. Les noyaux d'index d'extension doivent être enregistrés sous le fichier solr.xml, car le serveur Solr charge les index enregistrés sous le fichier solr.xml. Ce fichier contient également le mappage entre l'index de base et l'index d'extension.
  3. L'index d'extension doit être enregistré dans la base de données HCL Commerce. L'exécution de HCL Commerce recherche tous les index Solr enregistrés dans la table SRCHCONFEXT. Les index d'extension sont enregistrés en tant que sous-types d'index de l'index de base.
Remarque : L'index Classement des produits est utilisé pour démontrer les étapes nécessaires pour étendre le schéma d'index de base Entrée de catalogue pour l'ID de catalogue principal 10001 dans HCL Commerce Developer. Le type d'index est CatalogEntry. Le nouveau sous-type d'index est Classement, et le nouveau nom de noyau d'index est MC_10001_CatalogEntry_Ranking_generic.

Procédure

  1. Créez l'index d'extension dans le serveur Solr.
    1. Recherchez le modèle sampleIndexCore sous le répertoire suivant : workspace_dir\components\foundation\samples\SolrIndex\template.
    2. Effectuez une copie de sampleIndexCore sous le répertoire d'accueil generic\CatalogEntry Solr déployé. Si les répertoires n'existent pas, créez-les : workspace_dir\search\solr\home\MC_10001\generic\CatalogEntry.
    3. Renommez sampleIndexCore en Ranking.

      Le répertoire de noyaux d'index devient donc : workspace_dir\search\solr\home\MC_10001\generic\CatalogEntry\Ranking

    4. Mettez à jour le fichier schema.xml sous le répertoire de base conf pour ajouter le nouveau champ Ranking :
      
      <field name="ext_ranking" type="tfloat" indexed="true" stored="true" multiValued="false" />
      
  2. Enregistrez l'index d'extension dans le fichier solr.xml.
    1. Localiser et modifier le fichier solr.xml sous le répertoire d'accueil Solr : workspace_dir\search\solr\home
    2. Ajoutez le noyau d'index d'extension à la fin des noyaux répertoriés :
      
      <core 
      instanceDir="MC_10001\generic\CatalogEntry\Ranking\" name="MC_10001_CatalogEntry_Ranking_generic">
      <property name="notifyOnChange" value="MC_10001_CatalogEntry_en_US"/>
      </core>
      
    3. Enregistrez et fermez le fichier.
  3. Enregistrez le noyau d'index d'extension dans la table SRCHCONFEXT.
    
    INSERT INTO srchconfext (srchconfext_id,indextype,indexscope,indexsubtype,config) 
    VALUES(-100,'CatalogEntry','10001','Ranking','SearchServerName=localhost,SearchServerPort=80');
    
  4. Redémarrez le serveur de test.
  5. Vérifiez l'index d'extension à l'URL suivante :
    • http://localhost/solr/MC_10001_CatalogEntry_Ranking_generic/select?q=*
    La réponse ressemble issue de l'URL doit ressembler au fragment suivant :
    
    <?xml version="1.0" encoding="UTF-8"?>
    -<response> 
       -<lst name="responseHeader">
          <int name="status">0</int>
          <int name="QTime">62</int>
          -<lst name="params">
             <str name="q">*</str>
          </lst>
       </lst>
       <result name="response" start="0" numFound="0"/> 
    </response>
    

Que faire ensuite

Pour utiliser un index de stock dans HCL Commerce Search, suivez ce tutoriel : Configuration et génération de l'index de stock.