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

原文链接 https://www.hanyuanhun.cn | https://node.hanyuanhun.cn

posted @   汉源魂  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示