私の古いインデックスを保持しません。LuceneのApacheは私がインターネットでこの例を見つけた
Lucene Constants.java
public class LuceneConstants {
public static final String CONTENTS = "contents";
public static final String FILE_NAME = "filename";
public static final String FILE_PATH = "filepath";
public static final int MAX_SEARCH = 10;
}
これは私がそれらを使用する方法です:
public static void main(String[] args) throws IOException, ParseException {
{
// First file
Indexer indexer = new Indexer("index");
indexer.createIndex("f1.txt");
indexer.close();
Searcher searcher = new Searcher(Constante.DIR_INDEX.getValor());
TopDocs hits = searcher.search("Art. 1°");
for (ScoreDoc scoreDoc : hits.scoreDocs) {
org.apache.lucene.document.Document doc = searcher.getDocument(scoreDoc);
String nomeArquivo = doc.get(LuceneConstants.FILE_PATH);
System.out.println(nomeArquivo);
}
}
System.out.println("-----");
{
// Second file
Indexer indexer = new Indexer("index");
indexer.createIndex("f2.txt");
indexer.close();
Searcher searcher = new Searcher(Constante.DIR_INDEX.getValor());
TopDocs hits = searcher.search("Art. 1°");
for (ScoreDoc scoreDoc : hits.scoreDocs) {
org.apache.lucene.document.Document doc = searcher.getDocument(scoreDoc);
String nomeArquivo = doc.get(LuceneConstants.FILE_PATH);
System.out.println(nomeArquivo);
}
}
}
それは "// 2番目のファイル" のラインまで完全に正常に動作します。
私の2番目のファイルのインデックスを作成した後、私は最初のファイルで何も見つけることができません。
Indexerのインスタンスを作成し、この同じインスタンスを使用してf1.txtとf2.txtのインデックスを作成し、それを閉じると、私はそれが望むように動作します。問題は、アプリケーションを閉じて開いて別のファイルのインデックスを作成すると、f1.txtとf2.txtの両方が失われるということです。
Luceneに新しいファイルのインデックスを作成する際に常に以前のインデックスを保持させる方法はありますか?
となりました。ありがとうございます。そして、はい、私は3.6.2を使用しています、私は現在のバージョンを使用できるかどうかを確認します。 – Bolaum