/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.content.document.util.analyzer.lucene;
import java.io.Reader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
/**
* <ul>
* 实现Lucene Analyzer,基于IKTokenizer的中文分词器
* </ul>
*
* @author 吴智俊
*/
public final class IKAnalyzer extends Analyzer {
private boolean isMaxWordLength = false;
/**
* IK分词器Lucene Analyzer接口实现类
* 默认最细粒度切分算法
*/
public IKAnalyzer(){
this(false);
}
/**
* IK分词器Lucene Analyzer接口实现类
*
* @param isMaxWordLength 当为true时,分词器进行最大词长切分
*/
public IKAnalyzer(boolean isMaxWordLength){
super();
this.setMaxWordLength(isMaxWordLength);
}
/* (non-Javadoc)
* @see org.apache.lucene.analysis.Analyzer#tokenStream(java.lang.String, java.io.Reader)
*/
@Override
public TokenStream tokenStream(String fieldName, Reader reader) {
return new IKTokenizer(reader , isMaxWordLength());
}
public void setMaxWordLength(boolean isMaxWordLength) {
this.isMaxWordLength = isMaxWordLength;
}
public boolean isMaxWordLength() {
return isMaxWordLength;
}
}