Lucene_36 - 无法解析或不是字段

Lucene_36 - Cannot be resolved or is not a field

我正在尝试在我的程序中使用 Lucene 来删除停用词并实施词干提取?但是,当我尝试像这样导入 Lucene_36 时...

public String removeStopWords(){
    StandardAnalyzer analyser = new StandardAnalyzer(Version.LUCENE_36);
     Analyzer analyzer = new StopAnalyzer(Version.LUCENE_36);
    TokenStream tokenStream = new StandardTokenizer(Version.LUCENE_36,new StringReader(GetTweets.tweetContent));
    StringBuilder sb = new StringBuilder();
    tokenStream = new StopFilter(Version.LUCENE_36, tokenStream, StandardAnalyzer.STOP_WORDS_SET);
    CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);

它 returns Lucene_36 部分代码下面的错误说 Lucene_36 - Cannot be resolved or is not a field

有什么帮助吗?

谢谢大家

if I do Version.LUCENE_CURRENT this does not work either

为什么因为它已从 5.4.1 中弃用 API。

static Version  LUCENE_CURRENT

Deprecated. Use LATEST

public static final Version LATEST

例如:

Version.LATEST

Version.LUCENE_5_4_1

自 3.6 版以来,API 发生了很多变化。 Lucene 3.6 的向后兼容性在 5.0 版中被删除,除此之外,none 这些构造函数不再采用 Version 个参数。

我不太确定你是如何使用分析器的,以及你在这里构建的分析器,但这里有一个快速重写,至少应该编译:

public String removeStopWords(){
    StandardAnalyzer analyser = new StandardAnalyzer();
    Analyzer analyzer = new StopAnalyzer();
    Tokenizer tokenizer = new StandardTokenizer();
    tokenizer.setReader(new StringReader(GetTweets.tweetContent));
    TokenStream tokenStream = tokenizer;
    StringBuilder sb = new StringBuilder();
    tokenStream = new StopFilter(tokenStream, StandardAnalyzer.STOP_WORDS_SET);
    CharTermAttribute token = tokenStream.getAttribute(CharTermAttribute.class);