4

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

我正在使用 Solr 4.0,我认为新的字段别名功能可能是一个理想的解决方案。但是,突出显示组件似乎不理解这种新语法。例如,以下请求将理想地返回两个突出显示的片段:一个简短的片段和完整的字段:

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参数中指定的字段别名尝试了多种变体,但无济于事。我一直在讨论 JIRA 问题、补丁和源代码,但我无法确定正确的语法应该是什么。

有没有人对如何解决这个问题有想法?

4

1 回答 1

2

您可以查看hl.snippets :-

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

默认值为“1”。

于 2012-11-01T17:49:49.940 回答