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;
        }
    
    
    }
  • 相关阅读:
    【整理】在一亿个数中寻找出现频率最多的4个
    【整理】静态页面提交数据
    使用SIlverlight 4.0开发时,遇到提示"...Missoft.Silverlight.CSharp.Targets"文件路径不对的解决办法
    关于vs2010服务器资源管理器再添加数据连接时无法获取服务器名的解决办法
    关于Silverlight角色扮演游戏Sprite经典属性设计
    [学习笔记]Silverlight+WCF对数据库进行操作
    【学习】Silverlight中读取XML文件
    TCP/IP之UDP协议
    Tornado Prespective(转)
    TCP/IP之IP选路及动态选路
  • 原文地址:https://www.cnblogs.com/shaosks/p/8037465.html
Copyright © 2011-2022 走看看