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了。
阅读全文
1 0
- solr(二)Using SolrJ
- Solr 6.3 入门教程(二) SolrJ
- Solr Java客户端(SolrJ)
- Solr 读写(Java SolrJ)
- Using SolrJ
- 你不知道的全文检索---solrJ操作solr索引库(二)
- Solr学习(三) 牛刀小试之SolrJ
- 使用solrj操作solr
- Solr solrj的使用
- Solr/Solrj初探
- solrj操作solr
- 用solrj操作solr
- 使用solrJ操作solr
- Solr之客户端SolrJ
- [solr] - SolrJ增删查
- [solr] - SolrJ增删查
- solr-solrj的使用
- Solrj连接Solr服务
- C++模版
- 算法第四版 快排
- 日记—9.24
- NAT网络地址转换
- 消息队列中间件之ActiveMQ初识
- solr(二)Using SolrJ
- 实验一线性表的基本操作及其应用
- mybatis入门(一)——初试mybatis
- 怎样理解阻抗匹配?---非常好
- 【python 数据报表】发送带有样式和附件的邮件
- java lock
- 第四周总结
- 2017-9-24离线赛总结
- 动态规划