我有Solr 5.4.1,我正在尝试索引和存储html文件。我想存储原始HTML,以便我可以用它来突出显示。
有没有办法做到这一点?我的更新/提取请求处理程序使用Tika,我认为它正在从我的文件中删除html标记,因此希望避免这样存储原始html内容。
提前致谢
答案 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。