2010-08-10 91 views
5

我在SOLR中有一个非常大(5000+字符)的文本字段,名称为描述。到目前为止,它对搜索和突出显示非常有用。如果我执行搜索并且没有突出显示的部分,那么我只显示前300个字符。我想要做的只是返回SOLR结果中的300个字符。如何仅返回SOLR中字段的截断部分?

我想这样做,因为当测试我得到改进的性能,如果我返回一个较小的结果。这可能是因为XML文档的时间越短,处理速度越快,因为文档越小。

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

回答

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 
+0

奇妙的是,这正是我所需要的,它完美地工作。 – 2010-08-11 15:59:24