es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtro de reemplazo de patrón Solr después del filtro Ngram.

Básicamente, estoy intentando corregir la ortografía en cierta medida, y estoy utilizando el analizador de consulta mencionado.










Quiero agregar * a los tokens generados por NGramFilterFactory. ¿Cómo puedo agregar * a todos los tokens que surgen de NGramFilterFactory? Gracias de antemano por su sugerencia.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para añadir un asterisco a todos los tokens generados por NGramFilterFactory, se puede utilizar solr.PatternReplaceFilterFactory.

    Aquí tienes un ejemplo de cómo modificar el analizador:

    <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory"></tokenizer>
            <filter class="solr.StopFilterFactory" ignorecase="true" words="stopwords.txt" enablepositionincrements="true"></filter>
            <filter class="solr.WordDelimiterFilterFactory" generatewordparts="1" generatenumberparts="1" catenatewords="0" catenatenumbers="0" catenateall="0" splitoncasechange="0" preserveoriginal="1"></filter>
            <filter class="solr.LengthFilterFactory" min="2" max="100"></filter>
            <filter class="solr.LowerCaseFilterFactory"></filter>
            <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"></filter>
            <filter class="solr.NGramFilterFactory" mingramsize="4" maxgramsize="30"></filter>
            <filter class="solr.PatternReplaceFilterFactory" pattern="(.*)" replacement="$1*" replace="all"></filter>
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"></filter>
    </analyzer>
    

    En este analizador modificado, se ha añadido el filtro solr.PatternReplaceFilterFactory después de NGramFilterFactory. El filtro toma dos parámetros: patrón y reemplazo. El patrón aquí es “(.)” que coincide con cualquier carácter cero o más veces. El reemplazo es “$1” que significa reemplazar las coincidencias con la coincidencia original seguida de un asterisco.

    Este filtro añadirá un asterisco a todos los tokens generados por NGramFilterFactory.

    ¡Espero que esto te ayude! Hazme saber si tienes más preguntas.

Comments are closed.