solrj 操作 solr 单机版
一、导入 jar 包
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.3</version>
</dependency>
或者
链接:https://pan.baidu.com/s/14VlYDwtPpT4aiRP-UBAekg 密码:hfo4
二、添加
@Test
public void addDocuemn() throws Exception{
//创建一个 SolrServer 对象,参数为 solr 服务的 url
SolrServer solrServer = new HttpSolrServer("http://192.168.25.129:8080/solr/collection1"); //创建一个文档对象 SolrInputDocuemnt
SolrInputDocument document1 = new SolrInputDocument();
//向文档对象中添加域。文档中必须包含一个 id 域,所有域的名称必须在 schema.xml 中定义
document1.addField("id", "01");
document1.addField("name", "jack"); //创建一个文档对象 SolrInputDocuemnt
SolrInputDocument document2 = new SolrInputDocument();
//向文档对象中添加域。文档中必须包含一个 id 域,所有域的名称必须在 schema.xml 中定义
document2.addField("id", "02");
document2.addField("name", "rose"); //把文档写入索引库
solrServer.add(document1);
solrServer.add(document2);
//提交
solrServer.commit();
}
三、结果
四、更新
更新文档就是覆盖原来文档就可以了
五、删除
@Test
public void delDocument() throws Exception{
//创建一个 SolrServer 对象,参数为 solr 服务的 url
SolrServer solrServer = new HttpSolrServer("http://192.168.25.129:8080/solr/collection1");
//solrServer.deleteById("01");//通过 id 删除
solrServer.deleteByQuery("id:01 id:02");//通过查询条件批量删除( 域:值 )
//提交
solrServer.commit();
}
六、查询
@Test
public void queryDocument() throws Exception{
//创建一个 SolrServer 对象,参数为 solr 服务的 url
SolrServer solrServer = new HttpSolrServer("http://192.168.25.129:8080/solr/collection1");
//查询类
SolrQuery solrQuery = new SolrQuery();
//查询关键词
solrQuery.set("q", "name:jack");
//查询数据
QueryResponse response = solrServer.query(solrQuery);
//取数据
SolrDocumentList solrList = response.getResults();
//一共多少条数据
long num = solrList.getNumFound();
System.out.println("条数:"+num);
for (SolrDocument solrDocument : solrList) {
String id = (String) solrDocument.get("id");
String name = (String) solrDocument.get("name");
System.out.println("id:"+id);
System.out.println("name"+name);
}
}
7、复杂查询
@Test
public void queryDocument2() throws Exception{
//创建一个 SolrServer 对象,参数为 solr 服务的 url
SolrServer solrServer = new HttpSolrServer("http://192.168.25.129:8080/solr/collection1");
//查询类
SolrQuery solrQuery = new SolrQuery(); //拼接查询条件
solrQuery.set("张三");//设置查询内容
solrQuery.setStart(0);
solrQuery.setRows(20);
solrQuery.set("df", "item_title");//设置默认搜索域
solrQuery.setHighlight(true);//开启高亮搜索
solrQuery.addHighlightField("name");//高亮显示字段
solrQuery.setHighlightSimplePre("<em style = \"color:red\">");//前缀
solrQuery.setHighlightSimplePost("</em>");//后缀 //查询数据
QueryResponse response = solrServer.query(solrQuery);
//取数据
SolrDocumentList solrList = response.getResults();
//一共多少条数据
long num = solrList.getNumFound();
System.out.println("条数:"+num);
for (SolrDocument solrDocument : solrList) { String id = (String) solrDocument.get("id"); Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
List<String> list = highlighting.get(solrDocument.get("id")).get("name");
String name = "";
if( list != null && list.size() > 0 ){
name = list.get(0);
}else{
name = (String) solrDocument.get("name");
} System.out.println("id:"+id);
System.out.println("name"+name); }
}
solrj 操作 solr 单机版的更多相关文章
- 利用SolrJ操作solr API完成index操作
使用SolrJ操作Solr会比利用httpClient来操作Solr要简单.SolrJ是封装了httpClient方法,来操作solr的API的.SolrJ底层还是通过使用httpClient中的方法 ...
- 使用solrJ操作solr常用方法 【注释非常详细,非常好】
转: 使用solrJ操作solr常用方法 2017年08月07日 22:49:06 成都往右 阅读数:8990 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- 使用solrj操作solr索引库
(solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...
- 使用solrj操作solr索引库,solr是lucene服务器
客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...
- Solr 09 - SolrJ操作Solr单机服务 (Solr的Java API)
目录 1 SolrJ是什么 2 SolrJ对索引的CRUD操作 2.1 创建Maven工程(打包方式选择为jar) 2.2 配置pom.xml文件, 加入SolrJ的依赖 2.3 添加和修改索引 2. ...
- solrj 操作 solr 集群版
一.添加 @Test public void testAddDocument() throws Exception{ //创建一个集群的连接,应该使用 CloudSolrServer,//zkHost ...
- Solr 14 - SolrJ操作SolrCloud集群 (Solr的Java API)
目录 1 pom.xml文件的配置 2 SolrJ操作SolrCloud 1 pom.xml文件的配置 项目的pom.xml依赖信息请参照: Solr 09 - SolrJ操作Solr单机服务 (So ...
- Java操作Solr之SolrJ
添加SolrJ的jar包 solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, <depende ...
- Solr单机版的安装与使用
.使用Solr实现. 基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户.论坛等系统中常用此方案. .什么是Solr. Solr是A ...
随机推荐
- 开启 J2EE(五)— Servlet之状态管理
HTTP无状态协议 首先我们要知道: HTTP协议是无状态协议. 我们知道HTTP协议就是server通过Request从浏览器接收和Response向浏览器输出的这么一个过程(浏览器和server的 ...
- Selenium API 介绍
Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...
- 使用register_chrdev注册字符设备
1.2.2 使用register_chrdev注册字符设备 注册字符设备可以使用register_chrdev函数. int register_chrdev (unsigned int major, ...
- hdoj--2119--Matrix(最小点覆盖)
Matrix Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- [JavaEE] DWR入门教程
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给 ...
- FZU2150 Fire Game
题目: 两个熊孩子在n*m的平地上放火玩,#表示草,两个熊孩子分别选一个#格子点火,火可以向上向下向左向右在有草的格子蔓延,点火的地方时间为0,蔓延至下一格的时间依次加一.求烧完所有的草需要的最少时间 ...
- Hadoop MapReduce编程 API入门系列之统计学生成绩版本2(十八)
不多说,直接上代码. 统计出每个年龄段的 男.女 学生的最高分 这里,为了空格符的差错,直接,我们有时候,像如下这样的来排数据. 代码 package zhouls.bigdata.myMapRedu ...
- Super超级ERP系统---(8)订单管理--订单创建
订单管理是ERP系统中一个重要模块,客户下订单,ERP通过订单来为客户进行配送.订单模块主要包括订单创建,订单修改,订单审核,订单取消,订单分配,订单打印,订单拣货,订单出库.在随后的几节里我们看看这 ...
- javaweb 之 代理模式
一.动态代理 1.1.代理模式 什么是代理模式及其作用 Proxy Pattern(即:代理模式),23种常用的面向对象软件的设计模式之一 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问 ...
- hdu3572Task Schedule 最大流,判断满流 优化的SAP算法
PS:多校联赛的题目质量还是挺高的.建图不会啊,看了题解才会的. 参考博客:http://blog.csdn.net/luyuncheng/article/details/7944417 看了上面博客 ...