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 ...
随机推荐
- javascript中的Base64.UTF8编码与解码详解
javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...
- Android应用开发-护眼提醒-总结篇
设计初衷: 在学习<第一行代码>的服务那章时,涉及到了alarmmanager的内容.然后笔者当时正好在关注"程序猿怎样保护眼睛"的问题. 于是便自己做了一个demo, ...
- Android进程回收机制LMK(Low Memory Killer)【转】
本文转载自:http://www.cnblogs.com/wytiger/p/5744752.html 熟悉Android系统的童鞋都知道,系统出于体验和性能上的考虑,app在退到后台时系统并不会真正 ...
- [PHP] Ecstore 开发学习资源
一.ECOS框架图 二.学习资源链接 PHP之窗 http://www.phpwindow.com/ ECOS百科大全 http://www.ec-os.net/doc.html
- [JavaEE] Spring事务配置的五种方式
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...
- Java数组和内存控制
1.数组初始化 1.1 Java数组是静态的 Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java程序中的数组必须经初始化才可使用.所谓初始 ...
- 下载jdk12版本没有jre问题处理
以往下载jdk1.6版本直接运行会生成jdk,jre两个文件,但今天下载jdk12运行后,只有jdk目录文件,并没有jre后来在网上查找后通过命令行方式手动生成jre 1.下载jdk12 网址:htt ...
- Endnote导入共享数据
Endnote导入共享数据 Endnote是我们经常使用的参考文献管理工具.但是,在云计算还不是很普及的今天,往往每台电脑上都有自己的endnote数据库.这样,换了电脑,要使用同样的参考文献数据时, ...
- SMTP协议详解
简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准. SMTP是一个相对简单的基于文本的协议.在其之上指定了一条 ...
- Socket server
Socket server的使用方法(精华部分),仅供自用. class MyServer(socketserver.BaseRequestHandler): def handle(self): wh ...