如何仅返回SOLR中字段的截断部分?

Aar*_*n D 7 solr

我在SOLR中有一个非常大(5000+个字符)的文本字段,名为Description.到目前为止,它非常适合搜索和突出显示.如果我执行搜索并且没有突出显示的部分,那么我只显示前300个字符.我想做的只是返回SOLR结果中的300个字符.

我想这样做,因为在测试时,如果我返回较小的结果,我会获得改进的性能.这可能是因为XML文档较小,所以在线上的时间较少,然后处理速度更快,因为doc较小.

我曾想过使用刚存储前300个字符的新字段.我认为这会有效,但我想知道是否有更好或更原生的解决方案.

Kar*_*son 8

您正在寻找的是突出显示hl.maxAlternateFieldLength(http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength).

您需要将该字段定义为其自己的备用字段.如果要突出显示该字段Description,突出显示查询参数将为:

hl=true
hl.fl=Description
f.Description.hl.alternateField=Description
hl.maxAlternateFieldLength=300
Run Code Online (Sandbox Code Playgroud)

最后,Description要从查询结果中省略该字段,您必须将其从fl查询参数中排除:

fl=score,url,title,date,othermetadata
Run Code Online (Sandbox Code Playgroud)