我使用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(返回整个字段内容)的选项之一,但它可能非常大,我只需要几个片段用于结果页面。
另一种选择是删除所有HTML标记并以纯文本显示代码段,但我需要<em>
标记才能突出显示。还有一些标签可以像</p
那样在片段中被破坏,这意味着我们不能为此目的使用html解析器。
这似乎是搜索中的一个常见问题,是否有一些最先进的方法来处理它?</ p>
答案 0 :(得分:0)
通常的解决方案是在编制索引之前在途中删除HTML(例如using the HTMLCharFilter)。这样,您就可以使用纯文本字段突出显示,并使用嵌入的<em>
标记显示结果。
然后,您可以使用copyField
使HTML表示的字段保持不变,而不包含HTML的字段(用于突出显示)。