`

如何设置SOLR的高亮 (highlight)

 
阅读更多

转自:http://blog.csdn.net/thundersssss/article/details/5369654

 

  • 打开SOLR的核心配置文件: solrconfig.xml

 

  • 找到 standard request handler

 

  • 写入以下XML配置代码:

 

 

  1. <requestHandler name="standard" class="solr.SearchHandler" default="true">  
  2.   <!-- default values for query parameters -->  
  3.    <lst name="defaults">  
  4.      <str name="echoParams">explicit</str>  
  5.   
  6.   
  7.   
  8.         <bool name="hl">true</bool>  
  9.       <str name="hl.fl">title</str>  
  10.         <int name="hl.snippets">3</int>  
  11.   
  12.        
  13.      <!--  
  14.      <int name="rows">10</int>  
  15.      <str name="fl">*</str>  
  16.      <str name="version">2.1</str>  
  17.       -->  
  18.    </lst>  
  19. </requestHandler>  

 

 

 

 

 

  • 其中hl.fl是要高亮显示的字段,比如title,description等。
  • 重启,大功告成
  • 随便检索一个词,看看是不是结果后面多了一个尾巴?

      像这样的:

 

 

  1. <lst name="highlighting">  
  2.  <lst name="SOLR1000">  
  3.   <arr name="features">  
  4.   
  5.         <str>Standards Based Open Interfaces - <em>XML</em> and HTTP</str>  
  6.         <str>Scalability - Efficient Replication to other <em>Solr</em> Search Servers</str>  
  7.         <str>Flexible and Adaptable with <em>XML</em> configuration and Schema</str>  
  8.   </arr>  
  9.   
  10.   <arr name="sku">  
  11.         <str><em>SOLR</em>1000</str>  
  12.   </arr>  
  13.  </lst>  

 

 

 

 

  • 刚开始这种怪异的表现方式很不合我的胃口,为什么不把高亮标示直接标示到结果中呢? 另类~~~~
  • 有时间我会给SOLR动一次小手术,转变成适合我们国人使用的高亮~~~

 

 

高亮的配置

参数详细说明:

  • hl.fl: 用空格或逗号隔开的字段列表。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用hl.requiredFieldMatch选项。
  • hl.requireFieldMatch:
    如果置为true,除非该字段的查询结果不为空才会被高亮。它的默认值是false,意味着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到
  • hl.usePhraseHighlighter:
    如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。
  • hl.highlightMultiTerm
    如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。
  • hl.snippets:
    这是highlighted片段的最大数。默认值为1,也几乎不会修改。如果某个特定的字段的该值被置为0(如f.allText.hl.snippets=0),这就表明该字段被禁用高亮了。你可能在hl.fl=*时会这么用。
  • hl.fragsize:
    每个snippet返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。大字段时不会这么做。
  • hl.mergeContiguous:
    如果被置为true,当snippet重叠时会merge起来。
  • hl.maxAnalyzedChars:
    会搜索高亮的最大字符,默认值为51200,如果你想禁用,设为-1
  • hl.alternateField:
    如果没有生成snippet(没有terms 匹配),那么使用另一个字段值作为返回。
  • hl.maxAlternateFieldLength:
    如果hl.alternateField启用,则有时需要制定alternateField的最大字符长度,默认0是即没有限制。所以合理的值是应该为
  • hl.snippets * hl.fragsize这样返回结果的大小就能保持一致。
  • hl.formatter:一个提供可替换的formatting算法的扩展点。默认值是simple,这是目前仅有的选项。显然这不够用,你可以看看org.apache.solr.highlight.HtmlFormatter.java 和 solrconfig.xml中highlighting元素是如何配置的。
    注意在不论原文中被高亮了什么值的情况下,如预先已存在的em tags,也不会被转义,所以在有时会导致假的高亮。
  • hl.fragmenter:
    这个是solr制定fragment算法的扩展点。gap是默认值。regex是另一种选项,这种选项指明highlight的边界由一个正则表达式确定。这是一种非典型的高级选项。为了知道默认设置和fragmenters (and formatters)是如何配置的,可以看看solrconfig.xml中的highlight段。
    regex 的fragmenter有如下选项:
  • hl.regex.pattern:正则表达式的pattern
  • hl.regex.slop:这是hl.fragsize能变化以适应正则表达式的因子。默认值是0.6,意思是如果hl.fragsize=100那么fragment的大小会从40-160.
分享到:
评论

相关推荐

    Solr高亮查询案例-附件资源

    Solr高亮查询案例-附件资源

    docker配置solr登录密码文件

    docker配置solr登录密码文件,内含配置密码的文件 、web.xml的文件 ,详情可以去看我的博客,博客地址:https://blog.csdn.net/huyande123/article/details/97110784

    solr.war包solr.war包solr.war包solr.war包solr.war包

    solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...

    solr服务器_solr_

    solr

    SOLR的应用教程

    3.6.5 Solr高亮使用 46 4 SolrJ的用法 46 4.1 搜索接口的调用实例 46 4.2 Solrj的使用说明 47 4.2.1 Adding Data to Solr 47 4.2.2 Directly adding POJOs to Solr 49 4.2.3 Reading Data from Solr 51 4.3 创建查询...

    solr高级应用高亮显示高级搜索

    本课程全程使用目前比较流行的开发工具idea进行开发,涉及到目前互联网项目中最常用的高并发解决方案技术, 如 dubbo,redis,solr,freemarker,activeMQ,springBoot框架,微信支付,nginx负载均衡,电商活动秒杀,spring...

    solr

    solr

    java进阶Solr从基础到实战

    在本套课程中,我们将全面的讲解Solr,从Solr基础到Solr高级,再到项目实战,基本上涵盖了Solr中所有的知识点。 主讲内容 章节一:Solr基础(上) 1. 环境搭建 2. 核心讲解 3. 数据导入 4. 各种中文分析器 章节二:...

    solr安装设置资料

    solr安装设置资料solr安装设置资料

    solr文档solr文档

    solr文档

    已编译版本solr-8.11.2.tgz

    他的主要特性包括:高效,灵活的缓存功能,垂直搜索功能,高亮下试搜索结果,通过索引复制来提高可用性,提供一套强大的data schema 来定义字段,类型和设置文本分析,提供基于web的管理界面等。

    solr_solr_

    solr manageschema 配置文件,增加了分词器后的配置文件

    solr技术文solr技术文

    solr技术文solr技术文solr技术文

    配置好的solr启动环境

    完全配置好的solr容器,直接修改web.xml设置一下solr core路劲即可

    Solr定时更新Solr定时更新

    Solr定时更新Solr定时更新

    solr4.7服务搭建

    如何使用solr搭建服务器

    SSM+spring-data-solr+solr7.7 全文搜索代码

    JAVA语言,实现SSM+SQL Server 数据库整合,通过spring-data-solr框架实现与solr平台的互通,实现全文搜索功能,亲测,完全了可以用

    Solr权威指南-上卷

    包括部署、配置、Solr Core、Solr DIH、全量导入、增量导入、索引、中文分词、查询组件、Solr Facet、高亮、查询建议,以及企业如何在真实的项目中使用Solr。不仅讲解了基本概念和使用方法,而且还分析了各组件的...

    solr5.4.0完整包

    Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的...

Global site tag (gtag.js) - Google Analytics