java solrrequest_Java solr 分词

importjava.io.IOException;import java.util.*;importorg.apache.solr.client.solrj.SolrClient;importorg.apache.solr.client.solrj.SolrQuery;importorg.apache.solr.client.solrj.SolrRequest;importorg.apache.solr.client.solrj.SolrServerException;importorg.apache.solr.client.solrj.impl.HttpSolrClient;importorg.apache.solr.client.solrj.response.QueryResponse;importorg.apache.solr.client.solrj.response.UpdateResponse;importorg.apache.solr.common.SolrDocument;importorg.apache.solr.common.SolrInputDocument;importjava.util.Set;importjava.util.List;importjava.util.Map.Entry;importorg.apache.solr.client.solrj.request.FieldAnalysisRequest;importorg.apache.solr.client.solrj.response.AnalysisResponseBase.AnalysisPhase;importorg.apache.solr.client.solrj.response.AnalysisResponseBase.TokenInfo;importorg.apache.solr.client.solrj.response.FieldAnalysisResponse;/*** @Author:sks

* @Description:利用solr分词组件进行分词

* @Date:Created in 14:07 2017/12/14

* @Modified by:

**/

public classsplitwords {public static void main(String []args) throwsSolrServerException, IOException{

String urlString= "http://localhost:8983/solr/data";

Init(urlString);

String txt= "全党同志一定要登高望远、居安思危,勇于变革、勇于创新,永不僵化、永不停滞,团结带领全国各族人民决胜全面建成小康社会,奋力夺取新时代中国特色社会主义伟大胜利";

List results =getAnalysis(txt);for(String word :results){

System.out.println(word);

}//全党//同志//一定//要//登高望远//居安思危//勇于//变革//勇于//创新//永不//僵化//永不//停滞//团结//带领//全国各族人民//决胜//全面//建成//小康社会//奋力//夺取//新时代//中国特色//社会主义//伟大//胜利

}private staticSolrClient solr;/*** @Author:sks

* @Description:初始化solr客户端

* @Date:*/

public static voidInit(String urlString){

solr= newHttpSolrClient.Builder(urlString).build();

}/*** @Author:sks

* @Description:分词统计,把字符串分词并返回分词列表

* @Date:*/

public static ListgetAnalysis(String sentence) {

FieldAnalysisRequest request= newFieldAnalysisRequest("/analysis/field");

request.addFieldName("text");//字段名,随便指定一个支持中文分词的字段

request.setFieldValue("");//字段值,可以为空字符串,但是需要显式指定此参数

request.setQuery(sentence);

FieldAnalysisResponse response= null;try{

response=request.process(solr);

}catch(Exception e) {

e.printStackTrace();

}

List results = new ArrayList();

Iterator it = response.getFieldNameAnalysis("text")

.getQueryPhases().iterator();while(it.hasNext()) {

AnalysisPhase pharse=(AnalysisPhase)it.next();

List list =pharse.getTokens();for(TokenInfo info : list) {

results.add(info.getText());

}

}returnresults;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值