需要多次出现来自solr高亮显示,而不仅仅是第一次出现

时间:2014-01-31 04:41:02

标签: solr highlighting

我看过有关solr突出显示的文档,我发现我需要更改片段的默认值。我在20处给出了值,并从schema.xml中创建了maxAnalyzedChars 999999。即便如此,我只得到第一次出现。

我还在solrconfig.xml中添加了一些部分

<requentestHandler name="/search"  class="solr.SearchHandler"> 
<lst name="defaults"> 
 <str name="defType">dismax</str> 
 <int name="rows">10</int> 
 <str name="echoParams">explicit</str> 
 <str name="qf">content&#94;0.5 title&#94;1.2 </str> 
 <str name="q.alt">*:*</str> 
 <bool name="hl">true</bool> 
 <str name="hl.fl">title content url</str> 
 <str name="f.content.hl.fragsize">20</str> 
 <str name="f.content.hl.snippets">3</str>  
 <str name="f.content.hl.alternateField">content</str> 
 <str name="f.title.hl.fragsize">0</str> 
 <str name="f.title.hl.alternateField">title</str> 
 <str name="f.url.hl.fragsize">0</str> 
 <str name="f.url.hl.alternateField">url</str> 
</lst> 

任何人都可以帮助我吗?我是Solr的新手。我的要求是获取包含给定单词的短语。

2 个答案:

答案 0 :(得分:1)

只需使用hl.snippets参数指定所需的摘要数量。

[编辑] - 关于你的评论,似乎你在查询错误的requestHandler。那么,这可能解释了你的问题。无论如何,这里有一些可能有用的说明:

  • hl.snippets对应于最大要返回的摘要数量。将其用作限制。

  • hl.fragsize对应于您希望从匹配字段返回的字符串的长度(片段长度)。值“0”表示无限长度或整个字段。

当hl.fragsize设置为大于字段内容长度的值时,无论hl.snippets值或该字段中的匹配数,荧光笔只能从该字段(整个字段)返回一个单独的片段

要获取包含突出显示作为片段的短语,请使用与您认为的平均短语长度相当的fragsize(100~300是常用值)。

答案 1 :(得分:0)

我尝试了Solr Highlighting来查找多次出现的搜索文本。 Solr默认只发生一次。我尝试使用/select请求处理程序。在查询时我通过了以下参数。

hl.fragsize=999999999&hl.maxAnalyzedChars=999999999

现在,它能够找到搜索文本的多次出现。我希望这些参数也适用于您的/search处理程序。因此,请尝试为 hl.fragsize hl.maxAnalyzedChars 提供一个非常大的数字。