Solr突出显示:如何为同一字段请求多个片段长度?

时间:2012-11-01 15:53:11

标签: solr highlighting

我正在尝试找到一种方法来为单个字段请求不同长度的多个片段。我知道这可以通过发出两个单独的查询或复制字段来完成,但我想避免将查询负载或索引大小加倍。我也不愿意编写自定义代码段生成器。

我正在使用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}},

从此我得知荧光笔会寻找名为&#34; snip:content&#34;并失败。我尝试了fl,qf和f.myalias.qf参数中指定的字段别名的许多变体,但无济于事。我一直在倾注JIRA问题,补丁和源代码,但我无法确定正确的语法应该是什么。

有没有人对如何解决这个问题有所了解?

1 个答案:

答案 0 :(得分:2)

您可以查看hl.snippets: -

  

每个字段生成的突出显示的最大代码段数。   注意:任何数量的片段都可以从零到此   要生成的值。此参数接受每个字段的覆盖。

     

默认值为“1”。