solr(二)Using SolrJ

来源:互联网 发布:js toobject方法 编辑:程序博客网 时间:2024/06/05 08:43

SolrJ提供以java的方式进行索引的添加、查询、删除、修改。solrj为我们隐藏了一系列的与solr连接细节,通过简单的方法就可以实现对索引的操作。

一、导包

如果你是使用maven的话,就只需要在pom.xml中加入以下内容,就可以了。maven会自动帮你下载相关的依赖。

<dependency>    <groupId>org.apache.solr</groupId>    <artifactId>solr-solrj</artifactId>    <version>6.6.0</version></dependency>

但是,如果你不是用的maven,需要自己导包的话,除了添加solr-solrj.jar外,还需要添加以下依赖:
这里写图片描述

点这里跳转jar下载页面

二、使用solrj-api

在使用api之前你必须保证你将要连接的solr服务器已经是处于启动的状态了。

1. Solr client

String urlString = "http://localhost:8983/solr/coreName";SolrClient solr = new HttpSolrClient.Builder(urlString).build();

创建了solrclient对象之后,你可以通过这个对象调用query()、add()等方法。

2. 进行查询

SolrQuery query = new SolrQuery();query.setQuery(mQueryString);
  • mQueryString是查询的参数,是key:value的形式。例如查询name字段包含123的索引,那么改查询参数就应该是 name:%123%
  • 使用 query.setFields("category", "title", "price"); 设置查询后返回的字段,也就是solr页面上的fl参数。

3. 提交查询并得到响应结果

QueryResponse response = solr.query(query);// 可以将list转成JSON便于解析,也可以通过solr的方法根据字段名获得相应字段值SolrDocumentList list = response.getResults();      

4. 添加索引数据

通过构建SolrInputDocument的对象来添加索引。

SolrInputDocument document = new SolrInputDocument();document.addField("id", "552199");document.addField("name", "123");UpdateResponse response = solr.add(document);// 一定不能忘记最后的commitsolr.commit();

也可以用注解的方式,直接操作bean进行添加。

import org.apache.solr.client.solrj.beans.Field; public class Item {    @Field    String id;    @Field    String name;  }
Item item = new Item();item.id = "1";item.name = "test";client.addBean(item);solr.commit();      // 这一句很关键

5. 删除索引数据

删除查询到的数据,用这个方法可以删除所有数据

solr.deleteByQuery("*:*");      // 删除查询到的内容,如果是查询所有那么就是全部删除solr.commit();      // 这个语句必须要,不然无法得到想要的效果

6. 修改数据

和添加索引一样,需要注意的是根据id来确定更新的doc,所以提交的内容中一定要有有效的id,不然的话就变成add了。

原创粉丝点击