我看过有关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^0.5 title^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的新手。我的要求是获取包含给定单词的短语。
答案 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 提供一个非常大的数字。