Lucene的StandardAnalyzer在索引时会从字符串/首字母缩略词中删除点。 我希望Lucene保留点数,因此我使用的是WhitespaceAnalyzer类。
我可以将我的停用词列表提供给StandardAnalyzer ......但是我如何将它提供给WhitespaceAnalyzer?
感谢阅读。
答案 0 :(得分:6)
通过扩展WhiteSpaceAnalyzer并覆盖tokenStream方法创建您自己的分析器,如下所示。
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream result = super.tokenStream(fieldName, reader);
result = new StopFilter(result, stopSet);
return result;
}
这里的stopSet是一组停用词,你可以通过在你的分析器中添加一个构造函数来获得一个停用词列表。
如果您打算重用TokenStream,您可能还希望以类似的方式覆盖reusableTokenStream()方法。