Pregunta

Estoy creando algunas funciones de autocompletar usando la brújula y necesito agregar un EdgeNGramTokenFilter a la consulta de la brújula, pero no puedo ver cómo puedo agregarla.

¿Es esto posible?

¿Fue útil?

Solución

Logré agregar el filtro EdgeNGramTokenFilter creando una clase de proveedor agregando una referencia en el archivo compass.config.xml agregando la siguiente línea dentro de las etiquetas <searchEngine>

<analyzerFilter name="lower" type="EdgeNGramTokenFilterProvider"/>

Aquí está la clase:

import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter;
import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter.Side;
import org.compass.core.CompassException;
import org.compass.core.config.CompassSettings;
import org.compass.core.lucene.engine.analyzer.LuceneAnalyzerTokenFilterProvider;

public class EdgeNGramTokenFilterProvider implements LuceneAnalyzerTokenFilterProvider {

    public TokenStream createTokenFilter(TokenStream tokenStream) {
        return new EdgeNGramTokenFilter(tokenStream, Side.FRONT, 1, 20);
    }

    public void configure(CompassSettings settings) throws CompassException {
    }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top