Web-第二十九天 Lucene&solr使用二悟空教程
Posted Java帮帮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web-第二十九天 Lucene&solr使用二悟空教程相关的知识,希望对你有一定的参考价值。
Web-第二十九天 Lucene&solr使用二【悟空教程】
12. Solrj的使用(重点)
13. solr基本使用
a) schma.xml文件
b) 配置中文分词器
c) 配置业务域
d) DataimportHandler插件
14. Solrj的复杂查询
a) solr的查询语法
b) solrj的复杂查询
15. 京东商城学习案例
12. Solrj的使用
12.1. 什么是solrj
solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,如下图:
Solrj和图形界面操作的区别就类似于数据库中使用jdbc和mysql客户端的区别一样。
12.2. 需求
使用solrj调用solr服务实现对索引库的增删改查操作。
12.3. 环境准备
Solr:4.10.3
Jdk环境:1.7
IDE环境:Eclipse Mars2
12.4. 工程搭建
12.4.1. 创建java工程
12.4.2. 添加jar
Solrj的包,\solr-4.10.3\dist\目录下
solrj依赖包,\solr-4.10.3\dist\solrj-lib
Solr服务的依赖包,\solr\example\lib\ext
12.5. 代码实现
12.5.1. 添加&修改索引
12.5.1.1. 步骤
1.创建HttpSolrServer对象,通过它和Solr服务器建立连接。
2.创建SolrInputDocument对象,然后通过它来添加域。
3.通过HttpSolrServer对象将SolrInputDocument添加到索引库。
4.提交。
12.5.1.2. 代码
说明:根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。
@Test
public void testCreateAndUpdateIndex() throws Exception {
// 1. 创建HttpSolrServer对象
String baseURL = "http://127.0.0.1:8081/solr/";
HttpSolrServer httpSolrServer = new HttpSolrServer(baseURL);
// 2. 创建SolrInputDocument对象
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "c1001");
document.addField("content ", "Hello world!");
// 3. 把SolrInputDocument对象添加到索引库中
httpSolrServer.add(document);
// 4. 提交
httpSolrServer.commit();
}
12.5.2. 删除索引
12.5.2.1. 代码
抽取HttpSolrServer 的创建代码
private HttpSolrServer httpSolrServer;
// 提取HttpSolrServer创建
@Before
public void init() {
// 1. 创建HttpSolrServer对象
String baseURL = "http://127.0.0.1:8081/solr/";
this.httpSolrServer = new HttpSolrServer(baseURL);
}
删除索引逻辑,两种:
根据id删除
根据条件删除,根据条件删除
可以使用*:*作为条件,就是删除所有数据(慎用)
@Test
public void testDeleteIndex() throws Exception {
// 根据id删除索引数据
// this.httpSolrServer.deleteById("c1001");
// 根据条件删除(如果是*:*就表示全部删除,慎用)
this.httpSolrServer.deleteByQuery("*:*");
// 提交
this.httpSolrServer.commit();
}