
pom中添加依赖dependencygroupIdorg.apache.solr/groupIdartifactIdsolr-solrj/artifactIdversion7.2.1/version/dependency提供一个demopackagecom.xiaobai.util;importorg.apache.solr.client.solrj.impl.HttpSolrClient;/** * Author xiaobai * Date 2023/6/25 9:35 * Title: SolrUtil * Package com.xiaobai.util * description: */publicclassSolrUtil{/** * 获取SolrClient * solrj 6.5及以后版本获取方式 * * return */publicstaticHttpSolrClientgetSolrClient(Stringurl){/* * 设置超时时间 * .withConnectionTimeout(10000) * .withSocketTimeout(60000) */returnnewHttpSolrClient.Builder(url).withConnectionTimeout(10000).withSocketTimeout(60000).build();}}packagecom.xiaobai.util.main;importcom.xiaobai.util.SolrUtil;importorg.apache.commons.math3.stat.descriptive.summary.Product;importorg.apache.solr.client.solrj.SolrClient;importorg.apache.solr.client.solrj.SolrServerException;importorg.apache.solr.client.solrj.impl.HttpSolrClient;importorg.apache.solr.client.solrj.request.FieldAnalysisRequest;importorg.apache.solr.client.solrj.response.AnalysisResponseBase;importorg.apache.solr.client.solrj.response.FieldAnalysisResponse;importorg.apache.solr.client.solrj.response.QueryResponse;importorg.apache.solr.client.solrj.response.UpdateResponse;importorg.apache.solr.common.SolrDocument;importorg.apache.solr.common.SolrDocumentList;importorg.apache.solr.common.SolrInputDocument;importorg.apache.solr.common.params.MapSolrParams;importorg.apache.solr.common.params.SolrParams;importjava.io.IOException;importjava.util.*;/** * Author xiaobai * Date 2023/6/25 9:37 * Title: TestSolr * Package com.xiaobai.util.main * description: */publicclassTestSolr{privatefinalstaticStringBASE_URLhttp://127.0.0.1:8983/solr;privatefinalstaticStringCORE_NAMEhello_world;publicstaticvoidquery()throwsException{// TODO Auto-generated method stubHttpSolrClientclientSolrUtil.getSolrClient(BASE_URL);MapString,StringparamnewHashMapString,String();param.put(q,*:*);// 查询条件param.put(start,0);param.put(rows,2000000);// 返回记录数SolrParamssparamnewMapSolrParams(param);// 查询参数QueryResponseresclient.query(CORE_NAME,sparam);SolrDocumentListresultres.getResults();// 获取结果for(SolrDocumentdocument:result){// 遍历返回结果System.out.println(namedocument.get(name)iddocument.get(id));}}publicstaticvoidadd()throwsSolrServerException,IOException{//构造一篇文档(对象)SolrInputDocumentdocumentnewSolrInputDocument();//往doc中添加字段,在客户端这边添加的字段必须在服务端中有过定义document.addField(id,88888888);document.addField(name,可可爱爱没有脑袋);//获得一个solr服务端的请求去提交 ,选择具体的某一个solr coreHttpSolrClientsolrnewHttpSolrClient.Builder(BASE_URLCORE_NAME).build();solr.add(document);solr.commit();solr.close();}/** * 根据id从索引库删除文档 */publicstaticvoiddeleteById(Stringid)throwsException{//选择具体的某一个solr coreHttpSolrClientservernewHttpSolrClient.Builder(BASE_URLCORE_NAME).build();//删除文档//server.deleteById(036cd386-fbb0-4dde-8c47-f580b938538e);server.deleteByQuery(id:id);//删除所有的索引//solr.deleteByQuery(*:*);//提交修改server.commit();server.close();}publicstaticListStringgetAnalysis(Stringsentence){SolrClientclientSolrUtil.getSolrClient(BASE_URL);FieldAnalysisRequestrequestnewFieldAnalysisRequest(/CORE_NAME/query);request.addFieldName(name);// 字段名随便指定一个支持中文分词的字段request.setFieldValue();// 字段值可以为空字符串但是需要显式指定此参数request.setQuery(sentence);FieldAnalysisResponseresponsenull;try{responserequest.process(client);}catch(Exceptione){e.printStackTrace();}ListStringresultsnewArrayListString();IteratorAnalysisResponseBase.AnalysisPhaseitresponse.getFieldNameAnalysis(name).getQueryPhases().iterator();while(it.hasNext()){AnalysisResponseBase.AnalysisPhasepharseit.next();ListAnalysisResponseBase.TokenInfolistpharse.getTokens();for(AnalysisResponseBase.TokenInfoinfo:list){results.add(info.getText());}}returnresults;}}