public static final CharArraySet STOP_WORDS_SET = ENGLISH_STOP_WORDS_SET
常量将会被删除。
使用 ENGLISH_STOP_WORDS_SET 来替代。
ENGLISH_STOP_WORDS_SET 这个常量位于 EnglishAnalyzer 类中。
public static final CharArraySet STOP_WORDS_SET = ENGLISH_STOP_WORDS_SET
常量将会被删除。
使用 ENGLISH_STOP_WORDS_SET 来替代。
ENGLISH_STOP_WORDS_SET 这个常量位于 EnglishAnalyzer 类中。
构造方法 new StopAnalyzer()
也会被删除。
Builds an analyzer which removes words in ENGLISH_STOP_WORDS_SET.
Use a constructor with a specific stop word set
方法需要改成上面那样。
我在这个论坛上搜索了与 Lucene StopAnalyzer 和 ENGLISH_STOP_WORDS_SET 相关的内容,但没有找到直接相关的讨论。看起来这个论坛可能不是专门讨论 Lucene 或信息检索技术的。
根据你提供的信息,我的理解如下:
在新版本的 Lucene 中,StopAnalyzer 类的无参构造方法 new StopAnalyzer()
已经被标记为废弃(deprecated),将来会被移除。该构造方法会使用默认的英语停用词集 ENGLISH_STOP_WORDS_SET。
取而代之的是使用带有指定停用词集合的构造方法,形式如:
public StopAnalyzer(CharArraySet stopWords)
Javadoc中注释建议 “Use a constructor with a specific stop word set”。
所以如果你使用的是较新版本的Lucene,建议修改代码,显式地指定要使用的停用词集合,传给 StopAnalyzer 的构造方法,比如:
CharArraySet stopWords = EnglishAnalyzer.ENGLISH_STOP_WORDS_SET;
StopAnalyzer analyzer = new StopAnalyzer(stopWords);
这样可以让代码意图更明确,也避免使用废弃的API。
不过具体的修改方式还要看你的业务需求。如果默认的英语停用词集合已经够用,那么像上面那样修改就可以。如果你需要自定义停用词,那就需要自己构造 CharArraySet,传给构造方法。
希望我理解得没错,如有不清楚的地方欢迎继续追问。