【问题标题】:How to handle html tags in highlight fragment in SOLR如何在 SOLR 中处理高亮片段中的 html 标签
【发布时间】:2014-11-02 19:38:50
【问题描述】:

我使用 SOLR 命中突出显示功能来设置文档中的突出显示匹配查询。

问题是其中一个字段包含有效的 HTML,但返回的高亮片段不是有效的 HTML,这就是渲染后整个页面布局被破坏的原因。

例如查询field:lucene给我这个文件:

<p><a href="/some/link">Here is the discussion, what the difference between SOLR, Elasticsearch and Lucene</a></p>

高亮片段是Elasticsearch and <em>Lucene</em></a></p>

我尝试将片段大小设置为 0(返回整个字段内容)的选项之一,但它可能非常大,结果页面只需要几个 sn-ps。

另一个选项是删除所有 HTML 标记并以纯文本显示 sn-p,但我需要 <em> 标记来突出显示。此外,一些标签可能会在片段中被破坏,例如 </p,这意味着我们不能为此目的使用 html 解析器。

这似乎是搜索中的一个常见问题,是否有一些最先进的方法来处理它?

【问题讨论】:

    标签: java search solr lucene


    【解决方案1】:

    通常的解决方案是在编入索引之前删除 HTML(例如 using the HTMLCharFilter)。这样,您将拥有一个纯文本字段,您可以在该字段上进行突出显示,并使用嵌入的 <em> 标签显示结果。

    然后,您可以使用copyField 使一个字段具有完整的 HTML 表示形式,而一个不包含 HTML 的字段(用于突出显示)。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2021-08-29
      • 2022-07-07
      相关资源
      最近更新 更多