Java Lucene_36-无法解析或不是字段
我试图在我的程序中使用Lucene来删除停止词并实现词干分析?然而,当我尝试导入Lucene_36时,就像这样Java Lucene_36-无法解析或不是字段,java,lucene,stop-words,Java,Lucene,Stop Words,我试图在我的程序中使用Lucene来删除停止词并实现词干分析?然而,当我尝试导入Lucene_36时,就像这样 public String removeStopWords(){ StandardAnalyzer analyser = new StandardAnalyzer(Version.LUCENE_36); Analyzer analyzer = new StopAnalyzer(Version.LUCENE_36); TokenStream tokenStrea
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);
它返回代码的Lucene_36
部分下面的错误,表示Lucene_36-无法解决或不是字段
有什么帮助吗
谢谢各位
如果我使用Version.LUCENE\u CURRENT,这也不起作用
为什么呢?因为5.4.1 API中不推荐使用它
static Version LUCENE_CURRENT
不赞成。使用
例:
或
自3.6版以来,API有很多变化。Lucene 3.6的向后兼容性在5.0版中被删除,除此之外,这些构造函数都不再使用
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);
您使用的是哪个版本的jar?@satya-我已经导入了几个Lucene 5.4.1的jar。特别是分析器、核心、演示、查询、查询解析器。但是
Version.LUCENE_36
表示3.6版本。在这里,您假设使用一些版本。LUCENE_5*
不完全正确。检查5.4 API。看这里,你应该使用LUCENE\u 5\u 4\u 1
:@satya-但即使我使用Version.LUCENE\u CURRENT
,这也不起作用,即使它被弃用也不会阻止它工作,这只是不可取的。在功能上,使用LUCENE\u CURRENT
与使用LATEST
完全相同。无论如何,所提供代码中的任何方法都不再使用Version
参数了。@femtoRgon,我只是阅读了API,但没有处理它。在API本身中,他们建议使用最新的
。无论如何,谢谢。。我学到了一些新知识。
Version.LATEST
Version.LUCENE_5_4_1
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);