我有Solr 5.4.1,我正在尝试索引和存储html文件。我想存储原始 HTML,以便我可以使用它来突出显示。
有什么办法可以做到这一点吗?我的更新/提取请求处理程序使用 Tika,我相信它正在从我的文件中剥离 html 标签,因此希望避免这种情况来存储原始 html 内容。
提前致谢
在Solr中搜索HTML内容的最简单方法是使用HTMLStripCharFilterFactory进行索引。这会在索引时从文本中删除 HTML 标记(包括属性(,这意味着您可以搜索文本而无需搜索标记。字段的存储版本仍将包含 HTML 标记。
<!-- Field type for HTML fields, stripping HTML characters during indexing -->
<fieldType name="text_html" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
但是,这可能会导致突出显示标记,导致 HTML 标记中断,方法是出现在 HTML 标记的中间,或者剪切掉结束标记。另一种解决方案是在存储在Solr中之前剥离HTML。