1、import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; //TermAttribute
TermAttribute 改成 CharTermAttribute
TermAttribute.term CharTermAttribute.tostring
2、SearchContext 下发到 分模块
3、BooleanQuery 方式 改变
BooleanQuery oldBQuery = new BooleanQuery().add(new TermQuery(new Term(“keyword”, term.getTerm())),Occur.MUST);
BooleanQuery newBQuery =new BooleanQuery.Builder().add(new BooleanClause(new TermQuery(new Term(“keyword”, term.getTerm())), Occur.MUST)).build();
4、TokenStreamComponents createComponents 不再接受 Reader
以前的 return new TokenStreamComponents(source, result) { 不在能接受 reader
protected boolean reset(final Reader reader) throws IOException {
sink.reset();
return super.reset(reader);
}
};
TokenFilter 重写了(有的没 override)reset中 有对 Tokenizer 的初始化。会用到后面 set的reader
5、所有分词器 继承 ReusableAnalyzerBase 改成直接继承 Analyzer
6、schema.field.alias. 警惕字段别名,lucene 8.2 docvalue 不允许重复
7、SymbolTokenizer 简单符号分隔符 注意 staroffset endoffset 特殊字符偏移问题