Extension du fichier schema.xml à l'aide du fichier x-schema.xml

Le fichier schema.xml définit la structure du schéma d'index par défaut. Le schéma d'index par défaut peut être étendu à l'aide d'un fichier XML distinct. Les personnalisations les plus courantes du schéma d'index consistent à définir de nouvelles zones d'index.

Vous ne pouvez pas modifier ou étendre le fichier schema.xml directement. Au lieu de cela, vous travaillez avec le fichier x-schema.xml personnalisable.

Les types de zones Solr sont définis dans le fichier workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common\x-schema-field-types.xml. En utilisant les définitions de zone dans ce fichier comme modèle, vous modifierez les mappages de zone et de type de zone dans le fichier search-config-ext\src\index\managed-solr\config\v3\indextype\x-schema.xml (où indextype peut être CatalogEntry, CatalogGroup, Price ou Unstructured).

Procédure

Ouvrez le fichier de schéma d'index de recherche personnalisable, search-config-ext\src\index\managed-solr\config\v3\indextype\x-schema.xml.
  • Dans le fichier x-schema.xml, vous pouvez effectuer les personnalisations suivantes :
    1. Définissez de nouvelles zones d'index qui peuvent faire référence à n'importe quel type de zone de base ou de zone personnalisée.
      Par exemple :
      
      <field name="x_name" type="x_text" indexed="true" stored="true"  multiValued="false"/>
      
      Lorsqu'un préfixe x_ est utilisé pour éviter les conflits avec les artefacts du schéma de base. Ensuite, en utilisant la convention de dénomination suivante comme suffixe :
      fieldName
      Segmenté et non sensible à la casse, par exemple mfName.
      fieldName_cs
      Segmenté et sensible à la casse, par exemple mfName_cs.
      fieldName_ntk
      Non segmenté et non sensible à la casse, par exemple mfName_ntk.
      fieldName_ntk_cs
      Non segmenté et sensible à la casse, par exemple catenttype_id_ntk_cs.
      Remarque : Les zones de base ne peuvent pas être modifiées ou supprimées.
    2. Définissez de nouveaux types de zones d'index.
      Par exemple :
      <fieldType name="x_text" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
        <analyzer type="index">
      	<tokenizer class="solr.WhitespaceTokenizerFactory"/>
      	<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
      	<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" 
                            catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
      	<filter class="solr.LowerCaseFilterFactory"/>	
      	<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
        <analyzer type="query">
      	<tokenizer class="solr.WhitespaceTokenizerFactory"/>
      	<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
      	<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" 
                            catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
      	<filter class="solr.LowerCaseFilterFactory"/>	
      	<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
      </fieldType>
      

      Vous devez avoir une connaissance avancée des analyseurs et des outils de segmentation lors de la définition de nouveaux types de zones. Il est recommandé de suivre les recommandations générales pour Solr lors de la définition des types de zones. Par exemple, utilisez des zones segmentées pour la recherche et des zones non segmentées pour le tri ou la création de facettes.

    3. Définissez de nouvelles instructions de zone de copie, qui peuvent faire référence à n'importe quelle zone de base ou personnalisée.
      Par exemple :
      
      <copyField source="x_name" dest="defaultSearch"/> 
      
  • Sauvegardez le fichier et redémarrez le serveur de recherche.