文章来源:http://qb.doudang.com/doc-view-910.html
看到ik分词器支持solr4.0, 于是下载了试用,结果发现IK 分词器 2012 FF 版本取消了 org.wltea.analyzer.solr.IKTokenizerFactory 类,这导致只能使用ik分词器来进行分词,无法使用solr自带的其它过滤方式。
从iteye下找到了一个哥们的解决方法,附上代码:
package org.wltea.analyzer.henry; import java.io.IOException; import java.io.Reader; import java.util.Map; import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.util.ResourceLoader; import org.apache.lucene.analysis.util.ResourceLoaderAware; import org.apache.lucene.analysis.util.TokenizerFactory; import org.wltea.analyzer.lucene.IKTokenizer; /** * 主要用于Solr分词使用 * * @author niko * @date 2012-12-25 * @version */ public class IKTokenizerFactory extends TokenizerFactory implements ResourceLoaderAware { private boolean useSmart; @Override public void init(Map<String, String> args) { super.init(args); assureMatchVersion(); } @Override public Tokenizer create(Reader input) { IKTokenizer ikTokenizer = new IKTokenizer(input, useSmart); return ikTokenizer; } @Override public void inform(ResourceLoader loader) throws IOException { useSmart = getBoolean("useSmart", true); } }
作者还附上了打包好了代码,请进入作者的博客下载:
http://henry2009.iteye.com/blog/1754127