solr学习笔记(4)-带高亮查询

如何设置SOLR的高亮 (highlight)? 打开SOLR的核心配置文件: solrconfig.xml 找到 standard request handler  写入以下XML配置代码:  explicit true title 3 <!-- 阅读详情

截取一段真实项目中的高亮代码,常用的方法都已经使用,可以完成基本的高亮查询功能

@Repository
public class SolrItemSerchDaoImp implements SolrItemSerchDao{

	// 索引库
	@Autowired
	private SolrServer solrServer;

	//// 通过上面四个条件查询对象商品结果集
	public List<ProductModel> selectProductModelListByQuery(String queryString, String catalog_name,
			String price,String sort) throws Exception {

		// 查询 关键词  过滤条件
		// 价格排序 分页 开始行 每页数 高亮 默认域 只查询指定域
		SolrQuery solrQuery = new SolrQuery();
		// 关键词
		solrQuery.setQuery(queryString);
		// 过滤条件 
		if(null != catalog_name && !"".equals(catalog_name)){
			solrQuery.set("fq", "product_catalog_name:" + catalog_name);
		}
		if(null != price && !"".equals(price)){
			//0-9   50-*
			String[] p = price.split("-");
			solrQuery.set("fq", "product_price:[" + p[0] + " TO " + p[1] + "]");
		}
		// 价格排序
		if("1".equals(sort)){
			solrQuery.addSort("product_price", ORDER.desc);
		}else{
			solrQuery.addSort("product_price", ORDER.asc);
		}
		// 分页
		solrQuery.setStart(0);
		solrQuery.setRows(16);
		// 默认域
		solrQuery.set("df", "product_keywords");
		// 只查询指定域
		solrQuery.set("fl", "id,product_name,product_price,product_picture");
		// 高亮
		// 打开开关
		solrQuery.setHighlight(true);
		// 指定高亮域
		solrQuery.addHighlightField("product_name");
		// 前缀
		solrQuery.setHighlightSimplePre("<span style='color:red'>");
		solrQuery.setHighlightSimplePost("</span>");

		// 后缀
		// 执行查询
		QueryResponse response = solrServer.query(solrQuery);
		// 文档结果集
		SolrDocumentList docs = response.getResults();

		Map<String, Map<String, List<String>>> documents = response.getHighlighting();
		// Map K id V Map
		// Map K 域名 V List
		// List list.get(0)
		// 总条数
		long numFound = docs.getNumFound();
		
		
		List<ProductModel> productModels = new ArrayList<ProductModel>();
	
		for (SolrDocument doc : docs) {
			ProductModel productModel = new ProductModel();
			
			productModel.setPid((String) doc.get("id"));
			productModel.setPrice((Float) doc.get("product_price"));
			productModel.setPicture((String) doc.get("product_picture"));
			Map<String, List<String>> document= documents.get((String) doc.get("id"));
			List<String> list = map.get("product_name");
			
			productModel.setName(list.get(0));
			productModels.add(productModel);
		}
		return productModels;

	}
}

 注意:

 高亮开启后,高亮显示的数据是单独通过response.getHighlighting()获取出来,并且得到的是一个存储document的Map,Map的key是document的id,通过id取出的指定document,再取出指定域,如图

 

 

 

 

 

 

 

 

 

Solr控制台查询 头一回使用solr控制台,简单记录下操作过程。 1、打开控制台地址 界面如下图 2、点击query进行查询,红笔1标记的位置 下面主要说明一下2,3,4,5标记的参数使用方法,其他还没有用到。 q: 查询字符串(必须的)。*:*表示查询所有,公司名称:’*深圳*‘,表示公司名称按“深圳”模糊查询 ,多个条件用AND连接 fq: filter query 过滤查询。使用Filter Q... 阅读详情

相关推荐

[漏洞剖析]JeecgBoot queryFieldBySql注入与JDBC连接滥用:从内存马植入到RCE的完整攻击链

本文深度剖析了JeecgBoot框架中queryFieldBySql接口的SQL注入漏洞及其引发的完整攻击链。攻击者利用该漏洞,通过Freemarker SSTI植入隐蔽的内存马,并进一步滥用JDBC连接测试功能,借助H2数据库特性实现远程命令执行(RCE),揭示了低代码平台中功能滥用与安全配置疏忽带来的严重风险。

weixin_29232121的博客 115

(Slor)java对solr的基本操作

package cn.solr; import java.io.IOException; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.SolrQuery.ORD

Java面试辅导-海龟老师 6316

CAN-do-paser:Java开发的CAN总线数据帧解析库

CAN总线数据帧使用DBC文件信息解析为物理量,基于Java开发的数据解析工具。

佳瑞的博客 1136

solr 高亮显示

  官网:https://lucene.apache.org/solr/guide/6_6/highlighting.html#Highlighting-TheUnifiedHighlighter     前言       solr的高亮允许匹配用户查询的文档的片段包含在查询响应中返回,高亮包含在返回结果的单独部分(highlighting部分).     solr提供了一个高亮工具的集...

weixin_34302798的博客 306

ChatGPT Plus完整开通指南:从账号注册到稳定使用全流程

自然语言处理(NLP)技术通过深度学习模型实现对人类语言的理解与生成,其核心原理是基于Transformer架构的大规模预训练。GPT-4作为当前最先进的生成式AI模型,在代码编写、文档分析等场景展现出显著的技术价值。在实际应用中,稳定的网络环境和合规的支付方式是确保AI助手持续服务的关键因素。针对ChatGPT Plus的开通,需要系统性地解决账号验证、虚拟信用卡支付等工程实践问题,才能实现工作流的高效整合。

weixin_34239592的博客 431

(nginx) nginx5 nginx https部署实战

综上所述,相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。所以在这个互联网膨胀的时代,其中隐藏着各种看不见的危机,为了保证数据的安全,维护网络稳定,建议大家多多推广HTTPS。SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐HTTPS 降低用户访问速度(多次握手)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)

weixin_50382197的博客 1505

solr高亮的使用

今天要说的是关于solr的高亮设置,我一直认为solr的高亮设置封装的还是有一些麻烦的,所以,现在说说到底要怎么用它。 入正题: 1》首先看SolrQuery类,此类有方法setHighlight(true),当设置为true时,表示开启了高亮 2》 还是SolrQuery类,看方法 Java代码 //以下给两个字段开启了高亮,分别是name,description,...

196

探索niri:让你的Linux桌面布局无拘无束

niri是一款基于Wayland的滚动平铺合成器,采用创新的窗口管理方式。它将窗口排列为向右无限延伸的条目,支持独立显示器布局和动态垂直工作区,确保多任务操作流畅性。核心功能包括概要视图、截图界面、屏幕投射、手势操作、窗口分组等,并支持自定义布局和动画效果。niri具备良好的稳定性,兼容xwayland-satellite工具,灵感来自PaperWM但突破了GNOME限制。该项目为追求高效桌面管理的用户提供了全新解决方案,欢迎加入社区交流体验。

weixin_44626085的博客 1818

solr学习文档之高亮

在《solr学习文档之添加分词词库》一文中,我们学习了如何对一个词组进行分词提取,这一章我们将会使用到分词词库,并介绍如何进行高亮展现 在此之前,我们先了解一下高亮的几个参数 hl:是否开启高亮组件,true为开启,false为不开启 hl.fl:需要开启的高亮字段,多个可用逗号隔开 hl.simple.pre:高亮字段前缀 hl.simple.post:高亮字段后缀 (其他的暂不介绍

junjun56的专栏 886

用Pixhawk 2.4.8和PX4 1.13,从零搭建你的第一支无人机编队(附避坑清单)

本文详细介绍了如何使用Pixhawk 2.4.8飞控和PX4 1.13固件从零搭建低成本无人机编队系统。涵盖硬件选型、固件配置、多机通信和编队飞行逻辑开发的全流程,特别针对学生和爱好者提供实战验证的避坑方案,帮助实现多机协同飞行。

weixin_27219587的博客 403

基于FPGA的ov5640摄像头简易图像采集装置详解

本文介绍一种基于FPGA的,通过流模式DDR实现OV5640摄像头数据采集并显示的方法。

qq_42230252的博客 1万+

Solr基础教程之Query(四)

仅通过截图来介绍一些最基本的用法: 首先打开主界面,点击Query 直接点击Excute Query按钮 输入条件q进行查询 使用fq进行查询,注意这里的keyword是用来检索的字段,他包含name、address、gender、expert_skill,这几个属性,所以我搜索“海”能够查询出来有海字的记录 使用sort排序 使用start和rows,一般是分页的

孙琛斌的专栏 1万+

让openclaw接入web端的deepseek或着qwen,使用无限token

🪟 Windows: 提供原生的 PowerShell 一键安装支持!配置过程和官方版本是相同的,唯一的区别就是再选则model时要选择带Browser字样的deepseek或者qwen。安装之前需要先清理官方版本的安装痕迹,否则openclaw版本跳转不到这个中文版本。因为此版本与官方版本存在代差,在配置飞书时可能会出现无法安装飞书的情况。剩下的配置保持和官方版本一致操作即可。选中之后需要进行一次网页端的登录。登录后会出现可选择的model。安装完成后会跳到这个中文界面。涉及到接入飞书机器人的操作。

z1872385的博客 303

springboot项目练习七 solr高亮查询条件查询

1 页面增加输入框和搜索按钮  修改页面交互代码完成搜索框的检索功能 增加solr的高亮查询 &lt;table&gt; &lt;tr&gt; &lt;td&gt;输入查询关键字:&lt;/td&gt; &lt;td&gt;&lt;input type="text" class=".l-text" id="key" &gt;&l

Master_chaoAndQi的博客 1894

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Solr查询高亮显示实现方式

一、 实现种类         高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true 第一种是普通的高亮显示Highlighter,根据查询的docIdSet,获取Documents,并获取当前document的需要高亮的field的value,根据query的term和该field的value做匹配算法 第二种

M先生的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

solr java 查询高亮_Solr7.1--- 高亮查询

由于测试数据比较少,昨天用Java爬了简书的几百篇文章,唉,又特么两点多睡的。如果你需要这些测试文件GitHub。如果你看过我前面的文章,直接打开db-data-config.xml文件,添加一个entity效果:启动solr集群,然后添加一个名字为jianshu的CollectionD:\solr-7.1.0>.\bin\solr start -c -p 8983 -s example/c...

weixin_42515364的博客 347

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Solr查询详解

这节重点是讲Solr的查询相关的知识点 一、 查询参数说明   在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数!    1、常用  q - 查询字符串,这个是必须的。如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,

小草君技术专栏 8033

Solr 查询规则机制和高亮

因为所存储的文章内容大部分是通过编辑器录入的,这些内容需要渲染于页面中,所以不免内容会存在各式各样的Html标签,但是对于索引的查询如果存在这些标签的干扰,搜索的结果则会大不如意。在实现匹配查询时,不同的字段使用不同的查询机制查询能够提升搜索的准确性,可以对需要查询的字段配置分词库。针对 a 场景情况因为需要查询所有的栏目类型的记录,则会使用分组方式显示,而针对 b 场景情况,仅查询某栏目类型下所有记录就使用Solr的基本查询即可。solr提供了丰富的查询机制,基本查询和高级查询。至此,所需要配置完成。

猫步轻移,以学求知。余于此方寸之地,如猫观鼠,细察技艺所得,思维所悟。灵思如猫之警觉,日积月累,终成智海; 627

solr复杂查询条件查询(排序、过滤、高亮)

solr复杂查询条件查询(排序、过滤、高亮) package cn.kingdee; import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrQuery.ORDER; import o...

Angus的博客 1376

solr4.8 高亮查询和配置

转载请出自出处:http://eksliang.iteye.com/blog/2100461   1. ----------------------------------------------描述        我们经常使用搜索引擎,比如在baidu 搜索 spring ,会出现如下结果,结果中与关键字匹配的地方是红色显示与其他内容区别开来。   2.----------------

ickes的专栏 576

solr高亮查询

1 普通的查询 Map resultMap = new HashMap(); //1.创建查询对象 Query query = new SimpleQuery(); //2.创建查询条件选择器 item_keywords 域(复制域) is 分词 Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords")); //3.添加查

wdw66666的博客 535

es7.x es的高亮与solr高亮查询的对比&对比说明

fragmentSize(1000) 设置片段长度numOfFragments(1) 指定返回的片段数量preTags() 和 postTags() 设置高亮标记在 ES 中,使用 matchQuery 而非 termQuery 进行内容查询,因为:matchQuery 会分析查询文本,更适合高亮termQuery 用于精确匹配,不适合片段提取explain(true) 使返回结果包含评分信息通过 hit.getScore() 获取文档相关性得分获取第一个高亮片段的内容。

健康平安的活着的专栏 1006

solr查询列表并高亮显示

private Map&lt;String, Object&gt; searchList(Map searchMap) { // 高亮选项初始化 Map&lt;String, Object&gt; map = new HashMap&lt;&gt;(); HighlightQuery query = new SimpleHighlightQuery(); // 设置高亮的域 ...

ghjzzhg的博客 882

Solr学习之十:highlighting高亮显示查询

一、 实现种类         高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true 第一种是普通的高亮显示Highlighter,根据查询的docIdSet,获取Documents,并获取当前document的需要高亮的field的value,根据query的term和该field的value做匹配算法 第二种

谷风山音的专栏 3万+

Solr高亮查询例子

前言 在使用solr做索引查询过程中,需要对查询字段的命中文本做高亮显示。要实现这个效果,在solr中只需要作很少的配置就能实现。下面我们就在我们项目中实践一下吧 如何实现 需要在solrconfig.xml配置文件中加一个配置项,如下: explicit query stats debug highlight 然后,使用solrj

莫正华 4040
上一篇: solr学习笔记(3)-写入索引文档以及删除文档
下一篇: Redis深度历险(3)-集群的相关问题
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值