Solrj的使用
* * *
1 Solrj的使用
1.1 什么是solrj
solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图:
javaEE应用程序 SolrJ程序客户端 |
Solr服务 Tomcat |

Solrj和图形界面操作的区别就类似于数据库中你使用jdbc和mysql客户端的区别一样
1.2 需求
使用solrj调用solr服务实现对索引库的增删改查操作。
1.3 环境准备
l Solr:4.10.3
l Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下)
l Ide环境:eclipse indigo
1.4 工程搭建
1.4.1 第一步:创建java工程

1.4.2 第二步:添加jar
l Solrj的包

l Solr服务的依赖包

1.5 代码实现
1.5.1 添加\修改索引
1.5.1.1 步骤
1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
2、 创建SolrInputDocument对象,然后通过它来添加域。
3、 通过HttpSolrServer对象将SolrInputDocument添加到索引库。
4、 提交。
1.5.1.2 代码
说明:根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。
@Test
public void addDocument() throws Exception {
// 1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
// 参数:solr服务器的访问地址
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/");
// 2、 创建SolrInputDocument对象,然后通过它来添加域。
SolrInputDocument document = new SolrInputDocument();
// 第一个参数:域的名称,域的名称必须是在schema.xml中定义的
// 第二个参数:域的值
// 注意:id的域不能少
document.addField("id", "c0001");
document.addField("title\_ik", "使用solrJ添加的文档");
document.addField("content\_ik", "文档的内容");
document.addField("product\_name", "商品名称");
// 3、 通过HttpSolrServer对象将SolrInputDocument添加到索引库。
server.add(document);
// 4、 提交。
server.commit();
}
1.5.1.3 查询测试

1.5.2 删除索引
1.5.2.1.1 代码
@Test
public void deleteDocument() throws Exception {
// 1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
// 参数:solr服务器的访问地址
HttpSolrServer server = new HttpSolrServer(
"http://localhost:8080/solr/");
// 根据ID删除
server.deleteById("c0001");
// 提交
server.commit();
}
1.5.2.1.2 查询测试

1.5.2.2 根据条件删除
@Test
public void deleteDocumentByQuery() throws Exception {
// 1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。
// 参数:solr服务器的访问地址
HttpSolrServer server = new HttpSolrServer(
"http://localhost:8080/solr/");
// 根据ID删除
server.deleteByQuery("id:c0001");
// 全部删除
// server.deleteByQuery("\*:\*");
// 提交
server.commit();
}

浙公网安备 33010602011771号