Solr服务搭建好之后,需要在代码里面连接上Solr服务。和Jedis类似,Java操作Solr服务也需要一个助攻的Jar包,就是solrj。
在Maven工程的pom.xml文件中加入solr客户端的依赖,将solr客户端的jar包加入工程的依赖中:
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
</dependency>
创建Test类,实现测试代码。连接Solr服务时需要这么几个步骤,首先创建一个连接,然后创建一个文档对象,接着可以对文档进行操作,最后进行提交。
添加文档:
@Test
public void addDocument() throws Exception {
// 创建一个连接
SolrServer solrServer = new HttpSolrServer("http://192.168.243.3:8080/solr");
// 创建一个文档对象
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "001");
document.addField("name", "fy");
document.addField("sex", "女");
// 把文档对象写入索引库
solrServer.add(document);
// 提交
solrServer.commit();
}
删除文档:
@Test
public void deleteDocument() throws Exception {
// 创建一个连接
SolrServer solrServer = new HttpSolrServer(
"http://192.168.243.3:8080/solr");
//删除操作
//根据主键去删除
// solrServer.deleteById("001");
//删除所有
solrServer.deleteByQuery("*:*");
solrServer.commit();
}
查询操作:
@Test
public void queryDocument() throws Exception {
// 创建一个连接
SolrServer solrServer = new HttpSolrServer(
"http://192.168.243.3:8080/solr");
SolrQuery query = new SolrQuery();
// 设置查询条件
query.setQuery("fy");
// 设置默认搜素域
query.set("df", "name");
// 根据查询条件查询索引库
QueryResponse queryResponse = solrServer.query(query);
// 取查询结果
SolrDocumentList solrDocumentList = queryResponse.getResults();
// 打印查询结果的数量
System.out.println(solrDocumentList.getNumFound());
// 打印查出的第一条数据的id
System.out.println(solrDocumentList.get(0).get("id"));
}
查询时,可以在query中放入查询的条件,查询所要搜索的域,按照分页查询,需要是否需要高亮显示等等,都是可以一一设置的,例如:
// 设置分页
query.setStart((page - 1) * rows);
query.setRows(rows);
// 设置默认搜素域
query.set("df", "item_keywords");
// 设置高亮显示
query.setHighlight(true);
//添加要高亮显示的域
query.addHighlightField("item_tittle");
//设置高亮显示的样式
query.setHighlightSimplePre("<em style=\"color:red\">");
query.setHighlightSimplePost("</em>");
SolrQuery的方法,可以参考SolrQuery的API,它包含了很多方法来实现各种操作。