查询时的api分为两种一种是万能的set,还有一种是setxxxquery

     @Test
public void search2() throws Exception{
HttpSolrClient solrClient = new HttpSolrClient.Builder("http://127.0.0.1:8080/solr/solrcore1").build();
SolrQuery query = new SolrQuery();
query.set("q","test001"); //1.过滤器
query.set("fq","pprice:[1 TO 100]");//query.setFilterQueries("pprice:[1 TO 100]");也可以用addFiterQuries设置多过滤条件 //2.排序
query.set("sort","pprice desc,id asc");//query.setSort("pprice",ORDER.desc); addSort //3.设置查询到的文档返回的域对象
query.set("fl","id,pname,pprice");//query.setFields("id,pname"); //4.设置默认查询的域
query.set("df","pname"); //5.分页
query.set("start",0); //query.setStart(0)
query.set("rows",5); //query.setRows(5) //6.高亮
query.set("hl",true);
//设置高亮域(设置的域必须在查询条件中存在)
query.set("h1.fl","pname","pprice");
//前缀
query.set("hl.simple.pre","<em style='color:red'>");
//后缀
query.set("hl.simple.post","</em>"); /*query.setHighlight(true);
query.addHighlightField("pname");
query.setHighlightSimplePre("<em style='color:red'>");
query.setHighlightSimplePost("</em>");*/ QueryResponse response = solrClient.query(query);
SolrDocumentList results = response.getResults();
//k是id,内部的map的key是域名,其value是高亮的值集合
Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
System.out.println("匹配的结果总数是-------"+results.getNumFound());
for(SolrDocument document:results) {
System.out.println("id----" + document.get("id"));
System.out.println("pname-----" + document.get("pname"));
System.out.println("pprice------" + document.get("pprice"));
List<String> list = null;
if(highlighting.get(document.get("id")) != null) {
list = highlighting.get(document.get("id")).get("pname");
}else {
System.out.println("无法获取高亮map");
} if (list != null && list.size() > 0) {
System.out.println("高亮显示的内容:----"+list.get(0));
}else {
System.out.println("高亮显示的内容为空!!!");
}
System.out.println("=========================");
}
}

可以看到查询时用的set(xxx)与solrAdmin页面的查询界面想对应

关于高亮:

1.首先高亮的域必须出现在查询条件中,如果你设置了返回域,请把要高亮的域对象包含其中

2.高亮的域对象必须在solrconfig中必须设置其stored为true

3.高亮的数据结构如下图所示

可以看到是map中镶嵌着map,外层map的key是匹配到的document对象的id,其value是一个map,这个map的key才是设置的高亮的域对象名称,value中包含着高亮的内容

solr 7.x 查询及高亮的更多相关文章

  1. Solr 08 - 在Solr Web管理页面中查询索引数据 (Solr中各类查询参数的使用方法)

    目录 1 Solr管理页面的查询入口 2 Solr查询输入框简介 3 Solr管理页面的查询方案 1 Solr管理页面的查询入口 选中需要查询的SolrCore, 然后在菜单栏选择[Query]: 2 ...

  2. Lucene7.2.1系列(三)查询及高亮

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 一 准备 创建项目并添加Maven依赖 <dependenc ...

  3. Solr实战:使用Hue+Solr实现标签查询

    公司最近在研究多条件组合查询方案,Google的一位技术专家Sam和我们讨论了几个备选方案. Sam的信: 我做了进一步研究,目前有这么几种做法: 1) 最直接粗暴,只做一个主index,比如按行业+ ...

  4. Solr与MySQL查询性能对比

    本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608     Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...

  5. Solr学习笔记——查询

    1.进入Solr管理界面http://localhost:8983/solr/ 可以看到Query中有若干的参数,其意义如下(参考:http://www.jianshu.com/p/3c4cae5de ...

  6. Solr记录-solr检索和查询数据

    Solr检索数据 在本章中,我们将讨论如何使用Java Client API检索数据.假设有一个名为sample.csv的.csv文档,其中包含以下内容. 001,9848022337,Hyderab ...

  7. solr之~模糊查询

    有的时候,我们一开始不可能准确地知道搜索的关键字在 Solr 中查询出的结果是什么,因此,Solr 还提供了几种类型的模糊查询.模糊匹配会在索引中对关键字进行非精确匹配.例如,有的人可能想要搜索某个前 ...

  8. solr :term 查询, phrase查询, boolean 查询

    搜索总体有:term 查询, phrase查询, boolean 查询 1. SOLR搜索覆盖度和准确度保证的三个搜索方式: 保证准确率: AND: Search for two different ...

  9. solr的多条件组合查询和solr的范围查询【转】

    solr的多条件组合查询和solr的范围查询 版权声明:本文为博主原创文章,供大家参考,但不要抄袭哦! 存在问题:为了减轻数据库的访问压力,往往我们将必要的数据存储到solr中,并给部分字段建立索引, ...

随机推荐

  1. 洛谷——P1548 棋盘问题

    https://www.luogu.org/problem/show?pid=1548#sub 题目描述 设有一个N*M方格的棋盘(l<=N<=100,1<=M<=100)(3 ...

  2. EXT gridPanel 添加图片

    var workAreaGrid = new Ext.grid.GridPanel({ region: 'west', title: '工作面预警结果', store: wkSto, width: , ...

  3. vue使用(三)

    本节目标:获取后端api数据 需求:一个按钮,点击之后将服务器上的数据获取到,并显示出来 方法一: 1. 准备工作, (1)安装官方插件 vuedemo02>npm install vue-re ...

  4. windows下安装cmake

    windows下安装cmake 下载地址 download -> cmake-3.12.0-rc2-win64-x64.msi 安装 验证cmake --version

  5. SQL Server 中计算农历

    1.建一表,放初始化资料   因为农历的日期,是由天文学家推算出来的,到现在只有到2049年的,以后的有了还可以加入!   CREATE TABLE SolarData ( yearId int no ...

  6. SpringMVC实战(三种控制器方式)

    1.前言 上篇博客着重说了一下SpringMVC中几种处理映射的方式,这篇博客来说一下SpringMVC中几种经常使用的控制器.  2.经常使用控制器 2.1 ParameterizableViewC ...

  7. js闭包作用(避免使用全局变量)

    js闭包作用(避免使用全局变量) 一.总结 1.优点::可以把局部变量驻留在内存中,可以避免使用全局变量; 2.缺点:也有占用更多内存的缺点,用完要及时让垃圾回收器回收  fn=null //应及时解 ...

  8. 开发板 视频1 05_01 05_02 05_03 关于ubuntu的一些操作

    ctrl+alt+T 打开中端 ctrl+d  退出 ctrl+alt+f1 到f6 进入dos中端 ctrl+alt+f7 是退出 05_02 启动root用户   也就是进入 前面出现root了 ...

  9. ZOJ 2770 Burn the Linked Camp 差分约束 ZOJ排名第一~

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1770 题目大意: 陆逊为了火烧连营七百里,派出了间谍刺探敌情,得之刘备的军营以 ...

  10. shiro 静态页面资源不显示 解决方案(转)

    最近做一个ssm+shiro的框架整和 不加shiro之前ssm中css和图片显示正常.加上以后无法显示. 解决方案: shiro有静态资源过滤. 配置资源匿名访问即可 <property na ...