一、导入 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 单机版的更多相关文章

  1. 利用SolrJ操作solr API完成index操作

    使用SolrJ操作Solr会比利用httpClient来操作Solr要简单.SolrJ是封装了httpClient方法,来操作solr的API的.SolrJ底层还是通过使用httpClient中的方法 ...

  2. 使用solrJ操作solr常用方法 【注释非常详细,非常好】

    转: 使用solrJ操作solr常用方法 2017年08月07日 22:49:06 成都往右 阅读数:8990   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  3. 使用solrj操作solr索引库

    (solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...

  4. 使用solrj操作solr索引库,solr是lucene服务器

    客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...

  5. Solr 09 - SolrJ操作Solr单机服务 (Solr的Java API)

    目录 1 SolrJ是什么 2 SolrJ对索引的CRUD操作 2.1 创建Maven工程(打包方式选择为jar) 2.2 配置pom.xml文件, 加入SolrJ的依赖 2.3 添加和修改索引 2. ...

  6. solrj 操作 solr 集群版

    一.添加 @Test public void testAddDocument() throws Exception{ //创建一个集群的连接,应该使用 CloudSolrServer,//zkHost ...

  7. Solr 14 - SolrJ操作SolrCloud集群 (Solr的Java API)

    目录 1 pom.xml文件的配置 2 SolrJ操作SolrCloud 1 pom.xml文件的配置 项目的pom.xml依赖信息请参照: Solr 09 - SolrJ操作Solr单机服务 (So ...

  8. Java操作Solr之SolrJ

    添加SolrJ的jar包 solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, <depende ...

  9. Solr单机版的安装与使用

    .使用Solr实现. 基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户.论坛等系统中常用此方案. .什么是Solr. Solr是A ...

随机推荐

  1. Android自己定义控件之轮播图控件

    背景 近期要做一个轮播图的效果.网上看了几篇文章.基本上都能找到实现,效果还挺不错,可是在写的时候感觉每次都要单独去又一次在Activity里写一堆代码.于是自己封装了一下.这里仅仅是做了下封装成一个 ...

  2. ZOJ 1649 Rescue(有敌人迷宫BFS)

    题意 求迷宫中从a的位置到r的位置须要的最少时间  经过'.'方格须要1s  经过'x'方格须要两秒  '#'表示墙 因为有1s和2s两种情况  须要在基础迷宫bfs上加些推断 令到达每一个点的时间初 ...

  3. MongoDB 索引的使用, 管理 和优化

    MongoDB 索引的使用, 管理 和优化 2014-03-25 17:12 6479人阅读 评论(0) 收藏 举报  分类: MongoDB(9)  [使用explain和hint] 前面讲高级查询 ...

  4. zgb老师关于java集合的总结

    数组:存多个数据 操作不便集合(Collection ):存多个数据 管理多个数据 提供更为方便的操作Iterator:专门针对集合 进行迭代List:有序的 允许重复的元素ArrayList:底层数 ...

  5. C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  6. ComboxBox控件、checklistbox控件和listbox控件的组合开发

    第一步:先创建一个WinForm窗体应用程序,按照下图所示的进行布局. 第二步:为ComboxBox控件.checklistbox控件和listbox控件和button控件设置属性 第三步:在代码中的 ...

  7. 通过阅读《React 进阶之路》之学习笔记

    第一章: React 通过引入虚拟DOM.状态.单向数据流等设计理念,形成以组件为核心,用组件搭建UI的开发模式.

  8. web拼图错误分析

    老师要求用web制作一个拼图游戏. 发现的问题:点击随机生成拼图的按钮后,打乱的图片会出现无法还原的情况. 发现过程:每次生成一个拼图后会测试它怎么拼回去,结果发现有时候拼不回去. 数学原理:如果两个 ...

  9. vuejs开发H5页面总结

    最近参与了APP内嵌H5页面的开发,这次使用vuejs替代了jQuery,仅仅把vuejs当做一个库来使用,效率提高之外代码可读性更强,在此分享一下自己的一些开发中总结的经验. 关于布局方案 当拿到设 ...

  10. 如何在Hexo中实现自适应响应式相册功能

    用最清晰简洁的方法整合一个响应式相册 效果 技术选型 由于我选用的主题使用了fancyBox作为图片弹出展示的框架,查看后表示很不错,能满足需要 http://fancyapps.com/fancyb ...