/*** * * @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