【问题标题】:Highlight Matched Text for query term in solr在 solr 中突出显示查询词的匹配文本
【发布时间】:2016-04-26 10:23:09
【问题描述】:

我安装了 solr jetty 5.1.3,并使用 tika 索引了超过 15000 个文档。我已经在 SOLR 中索引并存储了文档发布日期和内容。我在 solrConfig.xml 中启用了突出显示,这是突出显示术语的请求处理程序的 xml

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="hl">on</str>
       <str name="hl.fl">content</str>
       <str name="hl.simple.pre">&lt;b&gt;</str>
       <str name="hl.simple.post">&lt;/b&gt;</str>
       <str name="f.content.hl.snippets">3</str>
       <str name="f.content.hl.fragsize">200</str>
       <str name="f.content.hl.maxAnalyzedChars">200000</str>
       <str name="f.content.hl.alternateField">content</str>
       <str name="f.content.hl.maxAlternateFieldLength">750</str>
     </lst>

    </requestHandler>

  <!-- A request handler that returns indented JSON by default -->
  <requestHandler name="/query" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
       <str name="df">content</str>
       <str name="hl">on</str>
       <str name="hl.fl">content</str>
       <str name="hl.simple.pre">&lt;b&gt;</str>
       <str name="hl.simple.post">&lt;/b&gt;</str>
       <str name="f.content.hl.snippets">3</str>
       <str name="f.content.hl.fragsize">200</str>
       <str name="f.content.hl.maxAnalyzedChars">200000</str>
       <str name="f.content.hl.alternateField">content</str>
       <str name="f.content.hl.maxAlternateFieldLength">750</str>
     </lst>
  </requestHandler>

它最多返回三个亮点,并且搜索文本是粗体的。就像我在查询词中搜索“Lorem”一样,它会向我返回一个类似的亮点

Lorem ipsum dolor sit amet 2016, consectetur adipiscing elit。 sed volutpat metus lorem,一个placerat nibh sodales in。在mauris tempus,vulputate felis eu,tincidunt erat 中的Cras。

但是当我搜索发布日期在过去 1 年到现在之间的文档时,它突出显示了两个术语。例如,如果我搜索““Lorem”和 docPublishDate:[2015-01-20 TO 2016-01-20]”,那么它会向我返回类似这样的亮点:

Lorem ipsum dolor sit amet 2016, consectetur adipiscing elit。 sed volutpat metus lorem,一个placerat nibh sodales in。在mauris tempus,vulputate felis eu,tincidunt erat 中的Cras。

我也不想要那个 solr highlight 2016 文本。我希望它只加粗 Lorem。我应该怎么做才能实现它?

【问题讨论】:

    标签: solr solr-highlight


    【解决方案1】:

    使用过滤器查询来限制要返回的文档集 - 以fq 参数给出的过滤器不用于突出显示。

    您还可以使用hl.q 参数来使用特定查询进行突出显示,因此您也可以将查询提交到不带日期部分的荧光笔 - 但这种情况似乎更适合使用过滤查询。

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 2014-02-08
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多