¿Cómo agrego un EdgeNGramTokenFilter a una consulta de la brújula?
-
05-07-2019 - |
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?
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