Ampliar el archivo schema.xml utilizando el archivo x-schema.xml

El archivo schema.xml define la estructura de esquema de índice predeterminado. El esquema de índice predeterminado puede ampliarse utilizando un archivo XML independiente. Las personalizaciones más comunes del esquema de índice son definir campos de índice nuevo.

No puede modificar o ampliar directamente el archivo schema.xml. En su lugar, trabaje con el archivo x-schema.xml personalizable.

Los tipos de campo Solr se definen en el archivo workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common\x-schema-field-types.xml. Si utiliza las definiciones de campos en este archivo como plantilla, modificará el campo y las correlaciones de tipos de campo en el archivo search-config-ext\src\index\managed-solr\config\v3\indextype\x-schema.xml (donde indextype puede ser uno de CatalogEntry, CatalogGroup, Precio o No estructurado).

Procedimiento

Abra el archivo de esquema de índice de búsqueda personalizable, search-config-ext\src\index\managed-solr\config\v3\indextype\x-schema.xml.
  • En el archivo x-schema.xml, puede realizar las siguientes personalizaciones:
    1. Defina campos de índice nuevos que pueden hacer referencia a los tipos de campo de base o tipos de campo personalizados.
      Por ejemplo:
      
      <field name="x_name" type="x_text" indexed="true" stored="true"  multiValued="false"/>
      
      Cuando se utiliza un prefijo x_ para evitar conflictos con los artefactos de esquema de base.x_ A continuación, utilizando el siguiente convenio de denominación como sufijo:
      fieldName
      Simbolizado y no sensible a mayúsculas y minúsculas, por ejemplo mfName.
      fieldName_cs
      Simbolizado y sensible a mayúsculas y minúsculas, por ejemplo mfName_cs.
      fieldName_ntk
      No simbolizado y no sensible a mayúsculas y minúsculas, por ejemplo mfName_ntk.
      fieldName_ntk_cs
      No simbolizado y sensible a mayúsculas y minúsculas, por ejemplo catenttype_id_ntk_cs.
      Nota: Los campos de base no se pueden modificar ni eliminar.
    2. Defina nuevos tipos de campo de índice.
      Por ejemplo:
      <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>
      

      Debe tener conocimientos avanzados de analizadores y simbolizadores al definir nuevos tipos de campo. Se recomienda seguir las recomendaciones generales para Solr cuando se establecen tipos de campos. Por ejemplo, utilizar campos simbolizados para la búsqueda y campos no simbolizados para clasificar o crear facetas.

    3. Defina sentencias de campo de copia nuevas, que pueden hacer referencia a los campos de base o personalizados.
      Por ejemplo:
      
      <copyField source="x_name" dest="defaultSearch"/> 
      
  • Guarde el archivo y reinicie el servidor de búsqueda.