

/***
*
* @param analyzer 分词器
* @param text 分词句子
* @throws Exception
*/
public static void analyzer(Analyzer analyzer,String text)throws Exception{
TokenStream ts = analyzer.tokenStream("name",text);
CharTermAttribute term=ts.addAttribute(CharTermAttribute.class);
ts.reset();
while(ts.incrementToken()){
System.out.println(term.toString());
}
ts.end();
ts.close();
} /***
* 根据字段类型分词并打印分词结果
* @param text
*/
public static void showAnalysisType(String text)throws Exception{
String fieldType="ik";//分词类型
//调用服务
FieldAnalysisRequest request = new FieldAnalysisRequest("/analysis/field");
//设置类型
request.addFieldType(fieldType);
//设置待分词的句子
request.setFieldValue(text);
//sc=private static HttpSolrClient sc=new HttpSolrClient("http://localhost:8983/solr/one");
//得到结果
FieldAnalysisResponse response =request.process(sc);
//得到对应的Analysis
Analysis as = response.getFieldTypeAnalysis(fieldType);
List<String> results = new ArrayList<String>();
//使用guava的库,将iteratro对象转换为List对象
List<AnalysisPhase> list=Lists.newArrayList(as.getIndexPhases().iterator());
//取某一个fitler的分词结果,因为一个fieldtype很有可能配置了多个filter,每一步经过
//filter的结果都不一样,所以此处,要指定一个获取分词结果的filter,跟因为有关
//所以散仙这里就写list.size-1了,注意此处的值,并不是固定的
for(TokenInfo token:list.get(list.size()-1).getTokens()){
//得到分词数据结果
results.add(token.getText());
}
}/***
* 根据字段名分词并打印分词结果
* @param text
*/
public static void showAnalysis(String text)throws Exception{
//此处是字段名
String fieldName="cpyName";
//固定写法
FieldAnalysisRequest request = new FieldAnalysisRequest("/analysis/field");
//添加field
request.addFieldName(fieldName);
//设置需要分词的句子
request.setFieldValue(text);
//请求solr服务得到结果
FieldAnalysisResponse response =request.process(sc);
//封装结果,返回,可能供其后续调用的业务处理
List<String> results = new ArrayList<String>();
//根据字段名获取结果
Analysis as=response.getFieldNameAnalysis(fieldName);
//使用guava工具包,转iterator为List
List<AnalysisPhase> list=Lists.newArrayList(as.getIndexPhases().iterator());
//打印分词结果
for(TokenInfo token:list.get(list.size()-1).getTokens()){
System.out.println(token.getText());
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/u010454030/article/details/47133505