Solr 1.4中如何显示并高亮所有查询结果?

3
我有一个Solr(1.4)设置,其中包含电子书数据的文本字段。命中Solr时的参数为:
"hl.fragsize":"0", "indent":"1", "hl.simple.pre":"{{{", "hl.fl":"body_eng", "hl.maxAnalyzedChars":"-1", "wt":"json", "hl":"true", "rows":"1", "fl":"ia,body_length,page_count", "q":"ia:talesofpunjabtol00stee AND PUNJAB", "q.op":"AND", "f.body_eng.hl.snippets":"428", "hl.simple.post":"}}}", "hl.usePhraseHighlighter":"true"}},
然而,结果仅显示20个单词PUNJAB的高亮出现次数。我尝试了"f.body_eng.hl.snippets":"428",但这甚至也没有起作用。
body_eng是一个大文本字段。高亮只能工作到一定长度。我已经尝试了其他单词。在所有示例中,高亮仅适用于约54K字母计数。
可能的原因是什么?
2个回答

2
首先,1.4版本的Solr非常老旧。我不确定在那个时候是否支持按字段值进行高亮(高亮功能本身是在Solr 1.3中引入的)。默认的高亮器在3.1中被更改。
但是,您应该可以通过为 hl.maxAnalyzedChars 提供一个大值来突出显示字段中的所有出现次数(不确定-1是否符合您的要求)。另一个可以尝试的选项是具有大的 hl.maxAnalyzedChars 和大的 hl.fragsize 值(对两个字段使用相同的值而不是0)。
如果仍然无法使其工作,请在更新的Solr版本上进行测试,以查看是否已经解决了该问题。

0

所以,经过很多询问,现在它可以工作了。

查询参数是正确的。模式导致了问题。所做的更改是 -

<filter class="solr.SnowballPorterFilterFactory" language="English" />

被替换为

<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接