0
Luceneのドキュメントで定義されているopen関数を使用しようとしています-(Ctrl + Fは'開いた')。しかし、Apache Lucene 6.4.2のNetbeans 8.1では、 'reader = IndexReader.open(indexDirectory);'というステートメントでコードのインラインエラーが発生します。ここにエラーとコードがあります。Java - Apache LuceneのIndexReader.open()への引数としてディレクトリ変数を渡すことはできません6.4.2
は、シンボル シンボルが見つかりません:メソッドオープン(ディレクトリ) 場所:Luceneのための現在のIndexReader JavaDoc
によると、クラスIndexReader
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.TopScoreDocCollector;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
public class Indexing_Searching
{
public static final String FIELD_CONTENTS = "contents";
public int searchIndex(String instring, String Index_Dir_Path)
{
int numDocs =0;
try
{
Path path = Paths.get(Index_Dir_Path);
Directory indexDirectory = FSDirectory.open(path);
IndexReader reader;
reader = IndexReader.open(indexDirectory);
Term term = new Term("content", instring);
numDocs = reader.docFreq(term);
//System.out.println("Number of documents for given key" + instring +" # docs" + numDocs);
}
catch (CorruptIndexException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return(numDocs);
}// End of one-words searching function
}
エラーを修正しました。下位互換性はありませんか?数年前に書かれたコードを実行していた。 –
3.5と6.4の間に3つのメジャーバージョンがあります。してください、慈悲Luceneの開発者:) – Nikolay