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 ...
随机推荐
- 关于JOS 未对全部内存分页映射之前 物理地址映射问题的思考
在kern/pmap.c 里面会又以下这段代码,要知道boot_alloc只会分配线性地址,真正建立虚拟页和物理页映射关系的在后面的page_alloc. ////////////////////// ...
- Android学习笔记(8):ViewGroup类
A ViewGroup is a special view that can contain other views (called children.) The view group is the ...
- APP漏洞自动化扫描专业评测报告(下篇)
上篇.中篇回顾:通过收费情况.样本测试后的扫描时间.漏洞项对比以及扫描能力这几个方面对阿里聚安全[1].360App漏洞扫描[2].腾讯金刚审计系统[3].百度移动云测试中心[4]以及AppRisk ...
- 分布式设计《初尝memcached》
之前听说过高性能的分布式缓存开源工具,但一直没有真正接触过,如今接触的产品中实用到过分布式缓存.所以决定一探到底.memcached是一个优秀的开源的分布式缓存工具.也是眼下比較火热的分布 ...
- lightoj--1005--Rooks(组合数)
Rooks Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu Submit Status De ...
- JavaScript扩展运算符(...)
对象的扩展运算符 扩展运算符是三个点(...).用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中. 如上图所示,新建了一个对象a,然后通过扩展运算符将其属性x,y一并拷贝到b对象中. 合并两个 ...
- A - Translation
Problem description The translation from the Berland language into the Birland language is not an ea ...
- 依赖注入与Service Locator
为什么需要依赖注入? ServiceUser是组件,在编写者之外的环境内被使用,且使用者不能改变其源代码. ServiceProvider是服务,其类似于ServiceUser,都要被其他应用使用,不 ...
- LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)
LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...
- poj1149 PIGS 最大流(神奇的建图)
一开始不看题解,建图出错了.后来发现是题目理解错了. if Mirko wants, he can redistribute the remaining pigs across the unlock ...