热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr6.7学习笔记(05)highlighter

搜索结果高亮显示是搜索引擎中的常用功能,在Solr中,我们可以如下配置:

搜索结果高亮显示是搜索引擎中的常用功能,在Solr中,我们可以如下配置:

<requestHandler name&#61;"/select" class&#61;"solr.SearchHandler"><lst name&#61;"defaults"><str name&#61;"echoParams">explicitstr><str name&#61;"rows">10str><str name&#61;"df">textstr><str name&#61;"hl">truestr><str name&#61;"hl.method">originalstr><str name&#61;"hl.fl">content filename filepathstr><str name&#61;"hl.preserveMulti">truestr><str name&#61;"hl.encoder">htmlstr><str name&#61;"hl.simple.pre"><b>str><str name&#61;"hl.simple.post"></b>str><str name&#61;"f.filename.hl.fragsize">0str><str name&#61;"f.filename.hl.alternateField">filenamestr><str name&#61;"f.filepath.hl.fragsize">0str><str name&#61;"f.filepath.hl.alternateField">filepathstr><str name&#61;"f.content.hl.snippets">3str><str name&#61;"f.content.hl.fragsize">200str><str name&#61;"f.content.hl.alternateField">contentstr><str name&#61;"f.content.hl.maxAlternateFieldLength">750str>lst>requestHandler>

常用的一些属性&#xff1a;

参数默认值描述
hlfalse如需启用highlighting&#xff0c;设置为true
hl.methodoriginalhighlighting的实现方式。有四个值可选&#xff1a;unified, original, fastVector, postings
hl.fl(df&#61;)指定需要高亮的一些字段。字段之间用空格或逗号分隔。可以使用*号&#xff08;e.g. text_*&#xff09;, 使用*号时&#xff0c;建议把hl.requireFieldMatch设为TRUE
hl.q(q&#61;)高亮的查询语句&#xff0c;默认值等于查询语句。一般都是查询什么&#xff0c;结果集中就高亮什么&#xff0c;还没看到需要另外设置的情况
hl.qparser(defType)hl.q的分析器
hl.requireFieldMatchfalse默认情况下&#xff0c;如果查询中指定了查询哪个field&#xff0c;但是还是会高亮所有hl.fl中指定的field。如果设置为true, 将会只高亮查询中的field。
hl.usePhraseHighlightertrue为true时&#xff0c;短语做为一个整体被高亮。为false时&#xff0c;短语中的每个单词都会被单独高亮。
hl.highlightMultiTermtrue为true时&#xff0c;高亮通配符查询
hl.snippets1指定每个字段中&#xff0c;最多高亮的片断。
hl.fragsize100返回搜索结果的最大长度。如常见的搜索引擎中&#xff0c;搜索结果只展示了部分文本&#xff0c;不可能把整篇文章都显示出来。需要点击进去才会显示全部
hl.tag.pre如果hl.method为original&#xff0c;此参数应该是hl.simple.pre。此值通常是HTML或XML标签
hl.tag.post如果hl.method为original&#xff0c;此参数应该是hl.simple.post。
hl.encoder(blank)如果为空&#xff0c;返回的文本不会被编码。如果设置为html&#xff0c;则返回的文本中如果包含html/xml的特殊字符的话&#xff0c;将会被转化 &#xff08;e.g.  & --> &&#xff09;
hl.maxAnalyzedChars51200高亮匹配的最大长度。如果某个文本符合搜索条件&#xff0c;但是搜索结果的前51200里面不包含搜索的内容&#xff0c;则不会继续往后去高亮匹配的内容。

 

 

 

 

 

 

 

 

 

 

不同的hl.method&#xff0c;还会有不同的参数。需要用到的时候再去查询文档。

当我们输入多个单词&#xff0c;希望在搜索结果里不同的单词用不同的背景色显示。在Solr的样例配置中&#xff0c;发现下面有一段

的配置。查看文档&#xff0c;发现当hl.method&#61;fastVector时&#xff0c;才会有hl.fragmentsBuilder的配置。文档中也有提到&#xff0c;如果hl.method&#61;original的话&#xff0c;只要设置f.yourTermVectorField.hl.method&#61;fastVector&#xff0c;也可以使用fastVector的属性。最后更改后的设置如下&#xff1a;

<requestHandler name&#61;"/select" class&#61;"solr.SearchHandler"><lst name&#61;"defaults"><str name&#61;"echoParams">explicitstr><str name&#61;"rows">10str><str name&#61;"df">textstr><str name&#61;"hl">truestr><str name&#61;"hl.method">originalstr><str name&#61;"hl.fl">content filenamestr><str name&#61;"hl.preserveMulti">truestr><str name&#61;"hl.encoder">htmlstr><str name&#61;"hl.fragmentsBuilder">coloredstr><str name&#61;"f.filename.hl.fragsize">100str><str name&#61;"f.filename.hl.alternateField">filenamestr><str name&#61;"f.filename.hl.method">fastVectorstr><str name&#61;"f.content.hl.snippets">3str><str name&#61;"f.content.hl.fragsize">200str><str name&#61;"f.content.hl.alternateField">contentstr><str name&#61;"f.content.hl.maxAlternateFieldLength">750str><str name&#61;"f.content.hl.method">fastVectorstr>lst>requestHandler>

注意&#xff1a;1. 使用 fastVector的字段&#xff0c;四个属性&#xff08;termVectors, termPositions, termOffsets, termPayloads&#xff09;必须都为true&#xff0c;且indexed必须也是true。

           2. 另外&#xff0c;f.field.hl.fragsize必须设置一个>&#61;18的数&#xff0c;要不然会报如下的exception&#xff1a;

org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/fileSearch: fragCharSize(0) is too small. It must be 18 or higher.

           3. 中配置一个 “background:lawgreen”的背景色&#xff0c;可是在Chrome里无法显示。导致我一开始以为是设置有问题。

转:https://www.cnblogs.com/langfanyun/p/7474019.html



推荐阅读
  • 首先我们在taotao-search-interface工程中新建一个SearchService接口,并在接口中添加一个方法,如下图所示。接着,我们到taotao-search-s ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • solr进阶七:与jQuery结合的自动补全功能
    网上有大量的jQuery自动补全功能的插件,我实现这个功能是采用网友写好的纯jQuery代码,而不是采用插件,因为特效会差很多。而后台的数据是从solr那边获取过来,通过整理,放到对象中,再放到 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 字符串匹配RabinKarp算法讲解
    问题描述:Rabin-Karp的预处理时间是O(m),匹配时间O((n-m1)m)既然与朴素算法的匹配时间一样,而且还多了一些预处理时间& ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
author-avatar
ka-ka快乐_848
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有