我在SOLR中有一个非常大(5000+个字符)的文本字段,名为描述。到目前为止,它非常适合搜索和突出显示。如果我执行搜索并且没有突出显示的部分,那么我只显示前300个字符。我想做的只是返回SOLR结果中的300个字符。
我想这样做,因为在测试时,如果我返回较小的结果,我会获得更好的性能。这可能是因为XML文档较小,因此线路上的时间较少,然后处理速度更快,因为文档较小。
我想过使用刚存储前300个字符的新字段。我认为这会有效,但我想知道是否有更好或更原生的解决方案。
答案 0 :(得分:7)
您正在寻找的是突出显示hl.maxAlternateFieldLength(http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength)。
您需要将字段定义为自己的备用字段。如果要突出显示字段Description
,则突出显示查询参数将为:
hl=true
hl.fl=Description
f.Description.hl.alternateField=Description
hl.maxAlternateFieldLength=300
最后,要从查询结果中省略Description
字段,您必须将其从fl
查询参数中排除:
fl=score,url,title,date,othermetadata
答案 1 :(得分:0)
使用Unified Highlighter时,hl.alternateField
不能用作查询参数。相反,您可以使用hl.defaultSummary
查询参数(从Solr 4.5开始可用)
hl.defaultSummary
如果为true,则如果不能正确生成突出显示的代码段,请使用文本的开头作为代码段。默认值为false。