Solr Highlighting:如何为同一字段请求多个片段长度?

Posted

技术标签:

【中文标题】Solr Highlighting:如何为同一字段请求多个片段长度?【英文标题】:Solr Highlighting: How to request multiple snippet lengths for the same field? 【发布时间】:2012-10-22 06:09:21 【问题描述】:

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

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

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 问题、补丁和源代码,但我无法确定正确的语法应该是什么。

有没有人知道如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以查看hl.snippets :-

每个字段生成的突出显示的 sn-ps 的最大数量。 注意:从零到这个的任意数量的 sn-ps 都是可能的 要产生的价值。此参数接受每个字段的覆盖。

默认值为“1”。

【讨论】:

感谢您抽出宝贵时间回复。 hl.sn-ps 参数确实启用了多个 sn-ps,但仅限于固定长度。例如,您如何为给定字段请求两个不同长度的 sn-ps?

以上是关于Solr Highlighting:如何为同一字段请求多个片段长度?的主要内容,如果未能解决你的问题,请参考以下文章

如何为一对多关系配置 Solr

如何为同一个 MailChimp 列表设置不同的注册表单?

solr入门之多线程操作solr中索引字段的解决

如何使用单个 solr 实例索引和搜索位于同一数据源中的两个不同表或 Solr 模板字段无法正常工作

MongoDB:如何为集合中的每个文档设置一个等于另一个字段值的新字段[重复]

solr 排序与文档分数计算