package zr.com.util; import java.io.IOException; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrQuery.ORDER; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; 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.SolrDocumentList; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.util.NamedList; import org.junit.Test; /** * * @author LF * */ public class BaseOperation { /** * 删除索引 * @throws IOException * @throws SolrServerException */ @Test public void deleteTest() throws SolrServerException, IOException{ // 建立请求 SolrServer server = new HttpSolrServer("http://192.168.10.105:18080"); // 删除 UpdateResponse ur = server.deleteById("448457__ef004ca974cc42b9a7128cb3a2eced3a"); System.out.println(ur); // 提交 server.commit(); } /** * 添加索引 * @throws IOException * @throws SolrServerException */ @Test public void addTest() throws SolrServerException, IOException{ // 建立请求 SolrServer server = new HttpSolrServer("http://192.168.10.105:18080"); // 创建SolrInputDocument对象 SolrInputDocument document = new SolrInputDocument(); // 添加相应的域(字段) document.addField("id", "15201596724"); document.addField("courseName", "算法导论"); document.addField("schoolName", "计算机技术大学"); server.add(document); // 提交 server.commit(); } /** * 更新 * @throws IOException * @throws SolrServerException */ @Test public void updateTest() throws SolrServerException, IOException{ // 建立请求 SolrServer server = new HttpSolrServer("http://192.168.10.105:18080"); // 创建SolrInputDocument对象 SolrInputDocument document = new SolrInputDocument(); // 添加相应的域(如果id的值不存在,则添加;否则,会先删除原来的数据,再添加) document.addField("id", "15201596724"); document.addField("courseName", "算法导论之算法之美"); document.addField("schoolName", "计算机技术大学"); document.addField("schoolShortName", "计算机技术软件工程学院"); server.add(document); // 提交 server.commit(); } /** * 查询 * @throws SolrServerException */ @Test public void queryTest() throws SolrServerException{ // 建立请求 SolrServer server = new HttpSolrServer("http://192.168.10.105:18080"); // 创建查询对象 SolrQuery query = new SolrQuery(); // 查询语句的处理 // String queryStr = "id:15201596724"; // String queryStr = "courseName:算法导论"; // String queryStr = "courseName:算法导论之算法之美 AND schoolShortName:学院"; String queryStr = "courseName:算法导论之算法之美 OR schoolShortName:学院"; query.setQuery(queryStr); // 分页(起始位置) query.setStart(10); // 分页(每一页显示的条数) query.setRows(5); // 排序(降序) query.setSort("courseName", ORDER.desc); //执行查询 QueryResponse response = server.query(query); // 获取响应后的结果集 SolrDocumentList list = response.getResults(); for (SolrDocument solrDocument : list) { System.out.println(solrDocument); } } /** * 模糊查询 * @throws SolrServerException */ @Test public void dimQueryTest() throws SolrServerException{ // 建立请求 SolrServer server = new HttpSolrServer("http://192.168.10.105:18080"); // 创建查询对象 SolrQuery query = new SolrQuery(); // 查询语句的处理(模糊查询,添加双引号即可) String queryStr = "courseName:\"算法导论\" "; query.setQuery(queryStr); // // 分页(起始位置) // query.setStart(10); // // 分页(每一页显示的条数) // query.setRows(5); // // 排序(降序) // query.setSort("courseName", ORDER.desc); //执行查询 QueryResponse response = server.query(query); // 获取响应后的结果集 SolrDocumentList list = response.getResults(); System.out.println(list.size()); for (SolrDocument solrDocument : list) { System.out.println(solrDocument); } } }
原文:http://www.cnblogs.com/lantu1989/p/6681361.html