我想用FrenchAnalyzer为HTML文本编制索引,因此我需要在分析之前剥离HTML。
我想在搜索后突出显示关键字,因此solution like this one不起作用,因为我想保留字符位置信息。
我找到了看上去很完美的SolR HTMLStripCharFilter类,但无法将它与FrenchAnalyzer链接起来。
我试图重写FrenchAnalyzer,但是我不知道如何使用HtmlStripCharFilter,它不能用作标准的Lucene过滤器。
我在没有Solr的情况下使用Lucene 3.5.0
最佳答案
在您的Analyzer子类中,尝试覆盖initReader。您可能想将stripHtml布尔参数添加到Analyzer的构造函数中,然后在initReader中使用此条件。
/**
* Override this if you want to add a CharFilter chain.
*/
@Override
protected Reader initReader(Reader reader) {
if (stripHtml) {
return new HTMLStripCharFilter(CharReader.get(reader));
} else {
return reader;
}
}