CavalliumDBEngine/src/main/java/it/cavallium/dbengine/lucene/analyzer/NCharGramEdgeAnalyzer.java

30 lines
963 B
Java
Raw Normal View History

package it.cavallium.dbengine.lucene.analyzer;
2020-12-07 22:15:18 +01:00
import it.cavallium.dbengine.lucene.LuceneUtils;
2020-12-07 22:15:18 +01:00
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.core.KeywordTokenizer;
import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter;
2022-01-11 22:23:07 +01:00
import org.apache.lucene.analysis.ngram.EdgeNGramTokenizer;
import org.apache.lucene.analysis.ngram.NGramTokenizer;
import org.apache.lucene.analysis.standard.StandardTokenizer;
2020-12-07 22:15:18 +01:00
2021-02-05 20:34:58 +01:00
public class NCharGramEdgeAnalyzer extends Analyzer {
2020-12-07 22:15:18 +01:00
2021-02-05 20:34:58 +01:00
private final int minGram;
private final int maxGram;
2020-12-07 22:15:18 +01:00
2022-01-11 22:23:07 +01:00
public NCharGramEdgeAnalyzer(int minGram, int maxGram) {
2021-02-05 20:34:58 +01:00
this.minGram = minGram;
this.maxGram = maxGram;
2020-12-07 22:15:18 +01:00
}
@Override
protected TokenStreamComponents createComponents(final String fieldName) {
2022-01-11 22:23:07 +01:00
Tokenizer tokenizer = new EdgeNGramTokenizer(minGram, maxGram);
return new TokenStreamComponents(tokenizer);
2020-12-07 22:15:18 +01:00
}
}