【问题标题】:Solr highlightingSolr 高亮显示
【发布时间】:2011-07-06 09:23:18
【问题描述】:

我看到了这个帖子here,他很好地解释了如何显示突出显示的结果,但对我来说这不起作用......

我得到了第一个突出显示和所有内容,但是与没有突出显示的原始响应相比,其中的文本非常少......

如何将高亮内容与 php 中的原始结果集合并?

【问题讨论】:

    标签: search solr replace


    【解决方案1】:

    我建议使用非默认荧光笔以获得更好的效果。 在你的 solrconfig.xml 中搜索你的 RequestHandler:

    <requestHandler name="/select" class="solr.SearchHandler">
    

    并添加以下内容:

    <str name="hl.usePhraseHighlighter">false</str>
    <str name="hl.useFastVectorHighlighter">true</str>
    <str name="hl.boundaryScanner">breakIterator</str>
    

    现在转到荧光笔部分

    <searchComponent class="solr.HighlightComponent" name="highlight">
    

    然后搜索这一行:

    <boundaryScanner name="default" default="false" class="solr.highlight.SimpleBoundaryScanner">
    

    确保将其设置为“default=false”。 然后将上面定义的 BoundaryScanner 配置为默认值:

    <boundaryScanner name="breakIterator" default="true" class="solr.highlight.BreakIteratorBoundaryScanner">
    

    对于此扫描仪,将类型更改为“SENTENCE”:

    <str name="hl.bs.type">SENTENCE</str>
    

    并设置您的语言和国家/地区设置。

    这个改变给了我更​​好的高亮效果!

    Awww - 差点忘了提及 schema.xml 中的变化。获取要突出显示的字段并添加以下选项:

    termVectors="true" termPositions="true" termOffsets="true"
    

    【讨论】:

    【解决方案2】:

    尝试hl.fragsize 增加 Solr 返回的突出显示的 sn-p 的大小。

    【讨论】:

    • 但这太不切实际了!即使我们增加了 fragsize 以包含要突出显示的字段的全部内容(并且大多数情况下它将是最大内容字段)。这意味着 Solr 会两次返回该字段的大量内容(一次用于原始,一次用于突出显示)。我觉得这是一个不方便的设计!
    • fl 中删除该字段,使其不会返回两次。使用hl.alternateField 确保字段值在高亮部分返回,即使没有匹配的词条。
    猜你喜欢
    • 2012-03-16
    • 2012-05-18
    • 2018-04-26
    • 2011-02-02
    • 1970-01-01
    • 2011-10-09
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多