使用WhitespaceAnalyzer的停用词

Ste*_*man 3 lucene lucene.net

Lucene的StandardAnalyzer在索引时会从字符串/首字母缩略词中删除点.我希望Lucene保留点数,因此我使用的是WhitespaceAnalyzer类.

我可以将我的停用词列表提供给StandardAnalyzer ......但我如何将它提供给WhitespaceAnalyzer?

谢谢阅读.

Sha*_*ore 6

通过扩展WhiteSpaceAnalyzer并覆盖tokenStream方法创建您自己的分析器,如下所示.

public TokenStream tokenStream(String fieldName, Reader reader) {
    TokenStream result = super.tokenStream(fieldName, reader);
    result = new StopFilter(result, stopSet);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这里的stopSet是一组停用词,您可以通过向分析器添加一个构造函数来获得停止词列表.

如果您计划重用TokenStream,您可能还希望以类似的方式覆盖reusableTokenStream()方法.