首页 > Web开发 > 详细

为推文优化的Lucene Analyzer类

时间:2017-07-05 19:35:11      阅读:289      评论:0      收藏:0      [点我收藏+]
<strong><span style="font-size:18px;">/***
 * @author YangXin
 * @info 使用Doublemetaphone函数对Twitter优化。
 * Doublemetaphone函数能够为发音类似的单词创建同样的键
 *  
 */
package unitTwelve;

import java.io.IOException;

import org.apache.commons.codec.language.DoubleMetaphone;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.en.PorterStemFilter;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.util.Version;
public class TwitterAnalyzer extends Analyzer{
	private DoubleMetaphone filter = new DoubleMetaphone();
	public TokenStream result = new PorterStemFilter(new StopFilter(true, new StandardTokenizer(Version.LUCENE_CURRENT, reader), StandardAnalyzer.STOP_WORDS_SET));
	TermAttribute termAtt = (TermAttribute) result.addAttribute(TermAttribute.class);
	StringBuilder buf = new StringBuilder();
	try{
		while(result.incrementToken()){
			String word = new String(termAtt.term(), 0, termAtt.termLength());
			buf.append(filter.encode(filter.encode(word)).append(" "));
		}
	}catch(IOException e){
		e.printStackTrace();
	}
	return new WhitespaceTokenizer(new StringReader(buf.toString()));
	}
}</span></strong>

为推文优化的Lucene Analyzer类

原文:http://www.cnblogs.com/ljbguanli/p/7122997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!