Personalización del archivo stopwords.txt
En esta lección, editará los archivos de configuración para influir en el comportamiento del motor de búsqueda Solr 7.3.1. El ejemplo concreto es la personalización del archivo stopwords.txt.
El archivo stopwords.txt es un archivo de configuración que lista las palabras utilizadas por el filtro de detención Solr. En HCL Commerce Versión 9, puede cambiar el comportamiento del filtro de detención señalando el motor en su propio archivo stopwords.txt.
En la siguiente guía de aprendizaje, personalizará el archivo stopwords.txt en inglés y comprobará que ha cambiado satisfactoriamente el comportamiento del motor de búsqueda Solr.
Antes de empezar
- Asegúrese de que está trabajando con la versión correcta del archivo stopwords.txt. El archivo predeterminado es
solrhom
/v3/CatalogEntry/conf/stopwords.txt, pero es posible que se haya ampliado, tal como se describe en Limitación de términos y caracteres de búsqueda de la consulta de búsqueda. Localice el archivo ampliado o cree uno nuevo para trabajar en él.Para asegurarse de que el sistema hace referencia al archivo predeterminado stopwords.txt o a su equivalente ampliado:- Determine cuál es el contenido del campo name en el archivo predeterminado solrhome/v3-index/CatalogGroup/conf/schema.xml o el archivo ampliado solrhome/v3-index-ext/CatalogGroup/x-schema.xml. Busque una definición similar a la siguiente:
<field name="name" type="wc_text_${lang:en}" indexed="true" stored="true" multiValued="false"/>
- En este ejemplo, el código de idioma
en
se ha asignado a name. Este código de idioma se utilizará como parte de la referencia al archivo stopwords.txt, lo que lo denomina stopwords_en. Puede consultar la vía de acceso con la que está asociado este nombre al buscar el archivo solrhome/v3/common/schema-field-types.xml. Busque el destino del filtro solr.StopFilterFactory. Se parecerá a lo siguiente:
En este caso, el nombre de stopwords_en se ha asociado con ../../common/stopwords.txt. Si stopwords_en no especifica lo contrario en SCHCONFIG, será el archivo predeterminado.<filter class="solr.StopFilterFactory" ignoreCase="true" words="${stopwords_en:../../common/stopwords.txt}"/>
- Determine cuál es el contenido del campo name en el archivo predeterminado solrhome/v3-index/CatalogGroup/conf/schema.xml o el archivo ampliado solrhome/v3-index-ext/CatalogGroup/x-schema.xml. Busque una definición similar a la siguiente:
- Añada el parámetro stopwords=stopwords_file_path a la columna CONFIG de la tabla de base de datos SRCHCONFEXT, donde stopwords_file_path es la vía de acceso del archivo stopwords.txt personalizado. En el entorno de contenedor, debe utilizar un mandato SQL similar al siguiente:
Donde el resaltadoupdate SRCHCONFEXT set CONFIG='stopwords=/opt/WebSphere/Liberty/usr/servers/default/resources/search/index/managed-solr/config/v3-index-ext/common/stopwords.txt, original_config' where indextype='CatalogEntry' and indexscope=masterCatalogId and indexsubtype='Structured';
original_config
es el valor de configuración original para el registro, y masterCalatogId debe cambiarse por su propio catalogId maestro. - Puede añadir palabras de detención para idiomas específicos. Para hacer que un archivo stopwords.txt sea específico del idioma, añada la línea
stopwords_lang
= stopwords_lang_file_path a la columna CONFIG de la tabla SRCHCONFEXT, donde lang es el código de idioma. Por ejemplo, si desea añadir sus propia palabras frecuentes en francés, añada la líneastopwords_fr=stopwords_fr_file_path
a la columna CONFIG de la tabla SRCHCONFEXT, donde stopwords_fr_file_path es la vía de acceso del archivo de palabras frecuentes en francés.
Procedimiento
-
En el escaparate, busque la cadena "can". Verá un resultado similar al siguiente:
- Copie el archivo solrhome/MC_masterCatalogID/locale/CatalogEntry/conf/stopwords.txt en el directorio workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common. Abra el archivo en un editor.
-
El archivo contiene palabras como "will" y "was" que ayudan a filtrar las cláusulas que no son útiles en las consultas de búsqueda. Como ejemplo que será fácil de probar, añada la palabra "can" en la parte inferior del archivo. Si ha copiado el archivo predeterminado, el resultado debería ser parecido al siguiente:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # a couple of test stopwords to test that the words are really being # configured from this file: stopworda stopwordb # Standard english stop words taken from Lucene's StopAnalyzer a an and are as at be but by for if in into is it no not of on or such that the their then there these they this to was will with can >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-
Añada el valor
stopwords=stopwords_file_path
a la columna CONFIG de la tabla de base de datos SRCHCONFEXT, donde stopwords_file_path es la vía de acceso relativa al archivo de descubrimiento en el contenedor. El siguiente mandato insertará los datos.sql: update SRCHCONFEXT set CONFIG=stopwords=workspace_dir\search-config-ext\src\index\managed-solr\config\v3\common\stopwords.txt, original_config where srchconfext_id=1;
- Reinicie el servidor de búsqueda de HCL Commerce.
Resultados
