zoukankan      html  css  js  c++  java
  • Java solr 分词

      代码如下:

    import java.io.IOException;
    import java.util.*;
    
    import org.apache.solr.client.solrj.SolrClient;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.SolrRequest;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.client.solrj.response.UpdateResponse;
    import org.apache.solr.common.SolrDocument;
    import org.apache.solr.common.SolrInputDocument;
    import java.util.Set;
    import java.util.List;
    import java.util.Map.Entry;
    import org.apache.solr.client.solrj.request.FieldAnalysisRequest;
    import org.apache.solr.client.solrj.response.AnalysisResponseBase.AnalysisPhase;
    import org.apache.solr.client.solrj.response.AnalysisResponseBase.TokenInfo;
    import org.apache.solr.client.solrj.response.FieldAnalysisResponse;
    /**
     * @Author:sks
     * @Description:利用solr分词组件进行分词
     * @Date:Created in 14:07 2017/12/14
     * @Modified by:
     **/
    public class splitwords {
        public static void main(String []args) throws SolrServerException, IOException{
    
            String urlString = "http://localhost:8983/solr/data";
            Init(urlString);
            String txt = "全党同志一定要登高望远、居安思危,勇于变革、勇于创新,永不僵化、永不停滞,团结带领全国各族人民决胜全面建成小康社会,奋力夺取新时代中国特色社会主义伟大胜利";
            List<String> results = getAnalysis(txt);
            for(String word :results){
                System.out.println(word);
            }
    
    //        全党
    //        同志
    //        一定
    ////        登高望远
    //        居安思危
    //        勇于
    //        变革
    //        勇于
    //        创新
    //        永不
    //        僵化
    //        永不
    //        停滞
    //        团结
    //        带领
    //        全国各族人民
    //        决胜
    //        全面
    //        建成
    //        小康社会
    //        奋力
    //        夺取
    //        新时代
    //        中国特色
    //        社会主义
    //        伟大
    //        胜利
    
    
        }
    
        private static SolrClient solr;
        /**
         * @Author:sks
         * @Description:初始化solr客户端
         * @Date:
         */
        public static void Init(String urlString){
    
            solr = new HttpSolrClient.Builder(urlString).build();
        }
        /**
         * @Author:sks
         * @Description:分词统计,把字符串分词并返回分词列表
         * @Date:
         */
        public static List<String> getAnalysis(String sentence) {
            FieldAnalysisRequest request = new FieldAnalysisRequest(
                    "/analysis/field");
            request.addFieldName("text");// 字段名,随便指定一个支持中文分词的字段
            request.setFieldValue("");// 字段值,可以为空字符串,但是需要显式指定此参数
            request.setQuery(sentence);
    
            FieldAnalysisResponse response = null;
            try {
                response = request.process(solr);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            List<String> results = new ArrayList<String>();
            Iterator<AnalysisPhase> it = response.getFieldNameAnalysis("text")
                    .getQueryPhases().iterator();
            while(it.hasNext()) {
                AnalysisPhase pharse = (AnalysisPhase)it.next();
                List<TokenInfo> list = pharse.getTokens();
                for (TokenInfo info : list) {
                    results.add(info.getText());
                }
    
            }
    
            return results;
        }
    
    
    }
  • 相关阅读:
    C语言结构体+公用体+枚举训练
    TIFF图像文件格式详解
    Professional CUDA C Programming的代码实例1.1
    C语言数组强化训练
    C语言字符数组与字符串
    文件操作
    MATLAB 与Modelsim之间对测试系统的联合仿真
    FFT实现逆FFT
    眼图——概念与测量(摘记)
    《我的心曾悲伤七次》卡里·纪伯伦
  • 原文地址:https://www.cnblogs.com/shaosks/p/8037465.html
Copyright © 2011-2022 走看看