KeywordAnalyzer and LowerCaseFilter/LowerCaseTokenizer

后端 未结 2 645
死守一世寂寞
死守一世寂寞 2020-12-19 12:11

I want to build my own analyzer that uses both filters/tokenizers.

I mean, the same field is Keyword (entire stream as a single token) and lowercase

2条回答
  •  遥遥无期
    2020-12-19 13:05

    In Lucene 3.6.2 it must look like this:

    import org.apache.lucene.analysis.KeywordAnalyzer;
    import org.apache.lucene.analysis.KeywordTokenizer;
    import org.apache.lucene.analysis.LowerCaseFilter;
    import org.apache.lucene.analysis.LowerCaseTokenizer;
    import org.apache.lucene.analysis.ReusableAnalyzerBase;
    import org.apache.lucene.analysis.Tokenizer;
    import org.apache.lucene.util.Version;
    
    public class YourAnalyzer extends ReusableAnalyzerBase {
    
        private final Version version;
    
        public YourAnalyzer(final Version version) {
            super();
            this.version = version;
        }
    
        @Override
        protected TokenStreamComponents createComponents(final String fieldName, final Reader reader) {
            final Tokenizer source = new KeywordTokenizer(reader);
            return new TokenStreamComponents(source, new LowerCaseFilter(this.version, source));
        }
    
    }
    

提交回复
热议问题