2010-08-10 59 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

相關問題