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;
        }
    
    
    }
  • 相关阅读:
    loj#2049. 「HNOI2016」网络(set 树剖 暴力)
    创建多个Oracle数据库及相应的实例
    [置顶] lua 进阶3--lua文件中调用C++函数
    android 设置Button或者ImageButton的背景透明 半透明 透明
    struts2 18拦截器详解(七)
    《Linux命令行与shell脚本编程大全》 第二十三章 学习笔记
    ios7下不能录音问题解决
    360 2013校园招聘笔试题(含参考答案)
    【MFC三天一个游戏】之 局域网黑白棋
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/shaosks/p/8037465.html
Copyright © 2011-2022 走看看