packagecom.example.demo.util;importcom.example.demo.domain.Message;importorg.apache.solr.client.solrj.SolrQuery;importorg.apache.solr.client.solrj.SolrServerException;importorg.apache.solr.client.solrj.impl.HttpSolrClient;importorg.apache.solr.client.solrj.response.QueryResponse;importorg.apache.solr.common.SolrDocument;importorg.apache.solr.common.SolrDocumentList;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;public classSolrUtil {private String solrUrl = "http://localhost:8983/solr/newcore";/*** 添加数据
*@parammessage
*@throwsIOException
*@throwsSolrServerException*/
public void add(Message message) throwsIOException, SolrServerException {
HttpSolrClient client= newHttpSolrClient(solrUrl);
client.addBean(message);
client.commit();
}/*** 搜索数据
*@paramkeyword
*@parampage
*@paramrows
*@return*@throwsIOException
*@throwsSolrServerException*/
public List search(String keyword, Integer page, Integer rows) throwsIOException, SolrServerException{
HttpSolrClient client= newHttpSolrClient(solrUrl);
SolrQuery query= newSolrQuery();
query.set("q","titleName:"+keyword+"*");//搜索关键字
query.setStart((page-1) * rows);//设置分页
query.setRows(rows);//设置查询条数
QueryResponse response= client.query(query);//执行搜索
SolrDocumentList resultList = response.getResults();//搜索结果
List list = new ArrayList<>();for(SolrDocument document:resultList){
Message message= newMessage();
message.setId(Integer.parseInt(document.get("id").toString()));
message.setLabel(document.get("label").toString());
message.setTitleName(document.get("titleName").toString());
list.add(message);
}returnlist;
}/*** 删除数据
*@paramid
*@throwsIOException
*@throwsSolrServerException*/
public void delete(String id) throwsIOException, SolrServerException {
HttpSolrClient client= newHttpSolrClient(solrUrl);
client.deleteById(id);
}
}