一、简介: solrJ是访问solr服务的java客户端,提供索引和上搜索的请求方法,solrJ通常嵌入在业务系统中,通过solrJ的API接口操作solr服务
二、jar包
<!-- solr客户端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.3</version>
</dependency>
三、添加数据:
@Test
public void addSolr() throws SolrServerException, IOException {
//创建一个SolrServer对象,创建一个连接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//创建一个文档对象SolrInputDocument
SolrInputDocument document = new SolrInputDocument();
//向文档对象中添加域,文档中必须包含一个id域,所有的域的名称必须在schema.xml中定义
document.addField("id", 1);
document.addField("item_title", "我是中国人");
document.addField("item_desc", "中华人民共和国万岁!");
//把文档写入索引库
solrServer.add(document);
//提交
solrServer.commit();
}
四、更新数据: 更新就是添加,只要id一致数据不同,就是更新。 系统原理:库会先根据id将数据删除,再添加新的数据
五、查询数据:
@Test
public void searchSolr() throws SolrServerException {
//创建一个SolrServer对象,创建一个连接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//创建一个SolrQuery对象
SolrQuery query = new SolrQuery();
//设置查询条件
query.setQuery("*:*");
/*
query.setStart(0); //设置分页:起始页
query.setRows(10); //设置分页:页面大小
query.set("df", "item_title"); //设置默认搜索域,若不指定默认搜索域,默认从text中找
query.setHighlight(true); //开启高亮
query.addHighlightField("item_title"); //设置高亮的域
query.setHighlightSimplePre("<em>"); //设置高亮的前缀
query.setHighlightSimplePost("</em>"); //设置高亮的后缀
*/
//执行查询
QueryResponse queryResponse = solrServer.query(query);
//取文档列表,取查询结果总记录数
SolrDocumentList results = queryResponse.getResults();
System.out.println("总记录数:"+results.getNumFound());
//遍历文档列表,从中取出域的内容
for (SolrDocument solrDocument : results) {
System.out.println(solrDocument.get("item_title"));
}
}
六、删除数据:
@Test
public void deleteSolr() throws SolrServerException, IOException {
//创建一个SolrServer对象,创建一个连接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//删除
solrServer.deleteById("1");
//提交
solrServer.commit();
}