Campos Solr personalizados

En esta lección, añadirá su propio tipo de campo Solr al archivo de configuración x-schema-field-types.xml. El nuevo campo eliminará las concatenaciones con guiones de las sugerencias de búsqueda. Por ejemplo, en lugar de sugerir "joya-bicolor" en una búsqueda de "joya", sugerirá "joya bicolor".

Si desea añadir tipos de campos Solr personalizados, puede definirlos en el archivo workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common\ x-schema-field-types.xml.

Para utilizar un tipo de campo personalizado, modifique la correlación de campo y tipo de campo en el archivo search-config-ext\src\index\managed-solr\config\v3\indextype\x-schema.xml, donde indextype es: CatalogEntry, CatalogGroup, Price o Unstructured.

Si sigue este procedimiento, añadirá un nuevo tipo de campo y utilizará este tipo en el índice catalogEntry. Añadirá un filtro de delimitador de palabras a este nuevo tipo de campo.

Procedimiento

  1. Busque la cadena "joya" en el escaparate. El motor de búsqueda Solr sugerirá nombres de productos concatenados por guiones, como en el siguiente resultado:


  2. Copie el archivo x-schema-field-types.txt del ejemplo solrconfiguration.zip en workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common\x-schema-field-type.xml.
  3. Añada el siguiente texto al archivo x-schema-field-type.xml.
    
         <fieldType name="x_textSpell_en" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
              <analyzer type="index">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="${stopwords_en:../../../v3/common/stopwords.txt}"/>
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" 
                               catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" splitOnNumerics="1" preserveOriginal="0"/>
    
                <filter class="solr.ShingleFilterFactory" outputUnigrams="true" minShingleSize="2" maxShingleSize="3" tokenSeparator=" " fillerToken="" />
                <filter class="solr.PatternReplaceFilterFactory" pattern="\s{2,}" replacement=" " replace="all"/>
                <filter class="solr.TrimFilterFactory"/>
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
              </analyzer>
              <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" 
                               catenateAll="0" splitOnCaseChange="1" splitOnNumerics="1" preserveOriginal="0"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="${stopwords_en:../../../v3/common/stopwords.txt}"/>
              </analyzer>
            </fieldType>
    Las clases definidas en negrita suprimen el carácter de guión '-' de las sugerencias de búsqueda. Por ejemplo, en lugar de devolver 'a-b ', la salida puede ser 'a b'.
  4. Abra el archivo workspace_dir\search-config-ext\src\index\managed-solr\config\v3\CatalogEntry\x-schema.xml. Añada un atributo de corrección ortográfica al elemento Campo como se indica a continuación.
    Localice el elemento campo.
    <field name="spellCheck" type="wc_textSpell_${lang:en}" indexed="true" stored="false" multiValued="true" /> 
    Cámbielo a leído:
    <field name="spellCheck" type="x_textSpell_en" indexed="true" stored="false" multiValued="true" />
    Localice el elemento dynamicField:
    <dynamicField name="spellCheck*" type="wc_textSpell_${lang:en}" indexed="true" stored="false" multiValued="true" />
    Cámbielo a leído:
    <dynamicField name="spellCheck*" type="x_textSpell_en" indexed="true" stored="false" multiValued="true" />
  5. Reinicie el servidor de búsqueda de HCL Commerce.
  6. Vuelva a crear el índice de búsqueda de .
    https://transaction_server_hostname:transaction_server_https_port/wcs/resources/admin/index/dataImport/build
    El método es POST y debe incluir autorización básica en la cabecera, es decir, un ID spiuser y su correspondiente password. Para obtener más información, consulte Creación del índice de HCL Commerce Search.

Resultados

En el escaparate, busque la cadena "joya" como en el paso 1. Sus sugerencias se devolverán sin guiones, como se indica a continuación.