文章来源: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