solr(二)Using SolrJ

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/xurk0922/article/details/78080483

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);
// 一定不能忘记最后的commit
solr.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了。

猜你喜欢

转载自blog.csdn.net/xurk0922/article/details/78080483
今日推荐