以下使用的是mmseg4j-1.9.1与lucene-4.10.2,由于在solr4.6中使用mmseg4j进行中文分词,如不对mmseg4j进行修改,将出现如下错误“TokenStream
contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.”;所以我们需要对mmseg4j进行重新编译,修改如下框中部分;
,修改后将重新编译的class文件拖回到原来的jar包中,jar包打开方式为rar。
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
以上引用都在lucene-core-4.10.2.jar中。
本文详细介绍了在使用mmseg4j进行中文分词时遇到的TokenStream contract violation错误,并提供了重新编译mmseg4j以修复该问题的方法。包括对特定类文件的修改步骤,以及如何将修改后的class文件整合回原始jar包中。同时,阐述了在使用Lucene和Solr时进行相关调整的重要性。
9297

被折叠的 条评论
为什么被折叠?



