Lucence3.0的Analyzer备忘

          问题:一连串的字符串如何进行分词,例如“onlyLoveforYouYEAH”

          想着lucence自带一些analyzer,没有仔细看里面的功能,就开始用了,发现效果并不太好。后来发现需要处理的字符串有一定模式,所以决定不用analyzer了,这里只是做个备忘,指不定以后还会用得着。

         

import org.apache.lucene.analysis.Analyzer;  
import org.apache.lucene.analysis.StopAnalyzer;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.analysis.KeywordAnalyzer;
import org.apache.lucene.analysis.Token;   
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.util.Version;
public class test{
	public static void main(String[] args) throws IOException {
		String s1="";
		String s2="";
		String s="drive_tohomeyeah";   
	    StringReader sr=new StringReader(s);
	    StandardAnalyzer an1 = new StandardAnalyzer(Version.LUCENE_30);
	    SimpleAnalyzer an2 = new SimpleAnalyzer(Version.LUCENE_30);
	    KeywordAnalyzer an3 = new KeywordAnalyzer();
	    TokenStream ts = an1.tokenStream("content",sr);
        boolean hasnext = ts.incrementToken();
        while(hasnext){
        	CharTermAttribute ta = ts.getAttribute(CharTermAttribute.class);
        	s2 = ta.toString()+" ";
        	System.out.println(ta.toString());
        	s1+=s2;
        	hasnext=ts.incrementToken();
        }
        System.out.println(s1);
	}
}
 结果为:drive

                 tohomeyeah

其他几个可以自行试试,但一些参数本人未仔细深入,需进一步了解。

你可能感兴趣的:(Lucence3.0的Analyzer备忘)