2012-11-01 89 views
3

我正試圖找到一種方法來爲單個字段請求多個不同長度的片段。我知道這可以通過發出兩個單獨的查詢或複製該字段來完成,但我希望避免將查詢負載或索引大小加倍。我也不想訴諸寫一個自定義片段生成器。Solr突出顯示:如何爲同一字段請求多個片段長度?

我正在使用Solr 4.0,我想也許新的field aliasing功能將是一個理想的解決方案。然而,突出顯示組件似乎並不理解這種新的語法。例如下面的請求在理想情況下返回兩個突出片段:一小片段和滿場:

http://localhost:8983/solr/select?defType=edismax&q=foo&qf=content&fl=id&hl=true&hl.fl=content,snip:content&f.content.hl.fragsize=50000&f.snip.hl.fragsize=200&wt=json&indent=true 

這導致類似如下:

"highlighting":{ 
"12345":{ 
    "content":{ 
    "snippet":["<em>foo</em> bar baz"]}, 
    "snip:content":{ 
    "snippet":null}}, 

由此我推測其高亮外觀對於名爲「snip:content」的字段失敗。我嘗試了一些變體,在fl,qf和f.myalias.qf params中指定了字段別名,但無濟於事。我一直在關注JIRA的問題,補丁和源代碼,但我無法確定適當的語法應該是什麼。

有沒有人有關於如何去做這個想法?

回答

2

您可以檢查hl.snippets: -

突出片段的最大數量每場產生。 注意:可能會生成從零到此 值的任意片段數。該參數接受每場重寫。

默認值是「1」。

+0

感謝您花時間回覆。 hl.snippets參數確實啓用了多個片段,但僅限於固定長度。例如,你如何請求給定字段的兩個不同長度的片段? – twadzilla