代码之家  ›  专栏  ›  技术社区  ›  Aaron D

如何在SOLR中只返回字段的截断部分?

  •  5
  • Aaron D  · 技术社区  · 14 年前

    我在SOLR中有一个非常大的(5000多个字符)文本字段,名为 说明 . 到目前为止,它非常适合搜索和突出显示。如果执行搜索时没有突出显示的部分,则只显示前300个字符。我想做的是从SOLR返回结果中的300个字符。

    我之所以这么做,是因为在测试时,如果返回较小的结果,我的性能会得到提高。这可能是因为XML文档更小,所以在网络上的时间更少,然后处理速度更快,因为文档更小。

    我已经考虑过使用一个新字段来存储前300个字符。我认为这是可行的,但我想知道是否有更好的或更本土的解决方案。

    1 回复  |  直到 14 年前
        1
  •  8
  •   Karl Johansson    14 年前

    http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength ).

    您需要将字段定义为它自己的备用字段。如果要突出显示字段 Description ,突出显示的查询参数将是:

    hl=true
    hl.fl=Description
    f.Description.hl.alternateField=Description
    hl.maxAlternateFieldLength=300
    

    说明 fl 查询参数:

    fl=score,url,title,date,othermetadata
    
        2
  •  0
  •   Simon    5 年前

    Unified Highlighter , hl.alternateField 作为查询参数不可用。相反,你可以使用 hl.defaultSummary

    hl.DEFAULT摘要
    如果为true,则如果无法生成正确的高亮显示的代码段,请将文本的前导部分用作代码段。默认值为false。