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 ...
随机推荐
- UVa 10297 - Beavergnaw
题目:假设一个底边与高为D的圆柱切去一部分使得.剩下的中心是底边与高为d的圆柱. 和以他们底面为上下地面的圆锥台,已知切去的体积,求d. 分析:二分,计算几何.圆锥台体积公式:π*(r^2+r*R+R ...
- 百度2016研发project师笔试题(四)
百度2016研发project师笔试题(四) 2015/12/8 10:42(网上收集整理的,參考答案在后面.若有错误请大神指出) 1. 关于MapReduce的描写叙述错误的是() A. 一个Tas ...
- Python学习笔记24:Django搭建简单的博客站点(二)
上一节说道怎样使用Django创建并执行一个项目.这节说怎样加入一个博客应用. 一 项目跟应用的关系 在加入应用之前,先来看看项目与应用之间有什么不同之处呢? 项目是针对一个特定的 Web 站点相关的 ...
- Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)
(本文代码已升级至Swift3) 本文演示如何制作一个可以编辑单元格内容的表格(UITableView). 1,效果图 (1)默认状态下,表格不可编辑,当点击单元格的时候会弹出提示框显示选中的内容 ...
- 部署微信定位精灵APK到Genymotion
- Queue 与List、LinkedList与 ArrayList 区别
List 是一个接口,不能实例化,通过实例化ArrayList 或者LinkedList来调用:List list = new ArrayList(); |--List: 元素是有序的(怎么存的就怎么 ...
- Qt5.9 WebChannel
Qt WebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client ...
- NOIP2012D2T1 同余方程
[NOIP2012T4]同余方程 noip2012-tg 描述 求关于 x的同余方程 ax ≡ 1(mod b) 的最小正整数解. 输入格式 输入文件 mod.in 输入只有一行,包含两个正整数a,b ...
- 动画和图形:OpenGL ES
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- TensorFlow-正弦函数拟合
MNIST的代码还是有点复杂,一大半内容全在搞数据,看了半天全是一滩烂泥.最关键的是最后输出就是一个accuracy,我根本就不关心你准确率是0.98还是0.99好吗?我就想看到我手写一个5,你程序给 ...