在Solr中存储原始HTML文件

时间:2016-02-11 15:12:13

标签: html apache indexing solr apache-tika

我有Solr 5.4.1,我正在尝试索引和存储html文件。我想存储原始HTML,以便我可以用它来突出显示。

有没有办法做到这一点?我的更新/提取请求处理程序使用Tika,我认为它正在从我的文件中删除html标记,因此希望避免这样存储原始html内容。

提前致谢

1 个答案:

答案 0 :(得分:2)

在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。