Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lucene_36-无法解析或不是字段_Java_Lucene_Stop Words - Fatal编程技术网

Java 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

我试图在我的程序中使用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);
它返回代码的
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);