在 solr 中突出显示查询词的匹配文本
Highlight Matched Text for query term in solr
我已经安装了 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"><b></str>
<str name="hl.simple.post"></b></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"><b></str>
<str name="hl.simple.post"></b></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 pain sit with 2016, consectetur adipiscing elite。 Sed volutpat metus lorem,一个 nibh sodales 的地方。毛里求斯 tempus 崩溃,vulputate felis eu,tincidunt erat。
但是当我搜索发布日期在过去 1 年和现在之间的文档时,它突出显示了两个术语。例如,如果您搜索“"Lorem" 和 docPublishDate:[2015-01-20 TO 2016-01-20]
Lorem ipsum pain sitting with 2016, consectetur adipiscing elite。 Sed volutpat metus lorem,一个 nibh sodales 的地方。毛里求斯 tempus 崩溃,vulputate felis eu,tincidunt erat。
Solr Highlight 2016 文本也。我希望它只加粗 Lorem。我应该怎么做才能实现它?
改为使用过滤器查询来限制要返回的文档集 - 作为 fq
参数给出的过滤器不用于突出显示。
您还可以使用 hl.q
参数来使用特定查询来突出显示,因此您也可以将查询提交给没有日期部分的突出显示 - 但这种情况似乎更适合使用过滤查询。
我已经安装了 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"><b></str>
<str name="hl.simple.post"></b></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"><b></str>
<str name="hl.simple.post"></b></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 pain sit with 2016, consectetur adipiscing elite。 Sed volutpat metus lorem,一个 nibh sodales 的地方。毛里求斯 tempus 崩溃,vulputate felis eu,tincidunt erat。
但是当我搜索发布日期在过去 1 年和现在之间的文档时,它突出显示了两个术语。例如,如果您搜索“"Lorem" 和 docPublishDate:[2015-01-20 TO 2016-01-20]
Lorem ipsum pain sitting with 2016, consectetur adipiscing elite。 Sed volutpat metus lorem,一个 nibh sodales 的地方。毛里求斯 tempus 崩溃,vulputate felis eu,tincidunt erat。
Solr Highlight 2016 文本也。我希望它只加粗 Lorem。我应该怎么做才能实现它?
改为使用过滤器查询来限制要返回的文档集 - 作为 fq
参数给出的过滤器不用于突出显示。
您还可以使用 hl.q
参数来使用特定查询来突出显示,因此您也可以将查询提交给没有日期部分的突出显示 - 但这种情况似乎更适合使用过滤查询。