Cómo tokenizar solo ciertas palabras en Lucene
Estoy usando Lucene para mi proyecto y necesito un analizador personalizado.
El código es:
public class MyCommentAnalyzer extends Analyzer {
@Override
protected TokenStreamComponents createComponents( String fieldName, Reader reader ) {
Tokenizer source = new StandardTokenizer( Version.LUCENE_48, reader );
TokenStream filter = new StandardFilter( Version.LUCENE_48, source );
filter = new StopFilter( Version.LUCENE_48, filter, StandardAnalyzer.STOP_WORDS_SET );
return new TokenStreamComponents( source, filter );
}
}
Lo he construido, pero ahora no puedo seguir. Mi necesidad es que el filtro debe seleccionar solo ciertas palabras. Como un proceso opuesto en comparación con el uso de palabras vacías: no elimine de una lista de palabras, pero agregue solo los términos en la lista de palabras. Como un diccionario preconstruido. Entonces el StopFilter no llena el objetivo. Y ninguno de los filtros que proporciona Lucene parece bueno. Creo que necesito escribir mi propio filtro, pero no sé cómo.
¿Cualquier sugerencia?