Web-第二十九天 Lucene&solr使用二悟空教程

Posted Java帮帮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web-第二十九天 Lucene&solr使用二悟空教程相关的知识,希望对你有一定的参考价值。


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客户端,提供索引和搜索的请求方法,如下图:

Web-第二十九天 Lucene&solr使用二【悟空教程】

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工程

Web-第二十九天 Lucene&solr使用二【悟空教程】 

 

12.4.2. 添加jar

Solrj的包,\solr-4.10.3\dist\目录下

Web-第二十九天 Lucene&solr使用二【悟空教程】 

solrj依赖包,\solr-4.10.3\dist\solrj-lib

Web-第二十九天 Lucene&solr使用二【悟空教程】 

 

Solr服务的依赖包,\solr\example\lib\ext

Web-第二十九天 Lucene&solr使用二【悟空教程】 


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();

}

 

以上是关于Web-第二十九天 Lucene&solr使用二悟空教程的主要内容,如果未能解决你的问题,请参考以下文章

lucene&solr全文检索_4改进

lucene_07_solr使用IK分词器

第二十九天

剑指offer——第二十九天(动态规划“困难”)

Mysql基础第二十九天,管理事务处理

第二十九天