私はJavaとLuceneを初めて使用しています。私のコードは、ファイルから行を取得し、それをLucene Indexに格納します。しかし、インデックスを検索して読み込むためにIndexReader
を作成すると、例外がスローされます。org.apache.lucene.index.IndexNotFoundException:org.apache.lucene.store.RAMDirectoryでセグメント*ファイルが見つかりません
私のJavaコードは以下の通りです。 IndexReader
を作成するには、それはあなたがインデックスライターを閉じ、IndexReaderを開く必要がインデックスに変更を書き込むためにIndexNotFoundException
static String itemsfreq[];
static StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
static IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35, analyzer);
public static void index_data(Directory indexed_document,int doc_num,IndexWriter w) throws IOException
{
for(int i = 0;i < itemsfreq.length;i++)
{
Document doc = new Document();
doc.add(new Field(Integer.toString(doc_num)+","+itemsfreq[i],itemsfreq[i++], Field.Store.YES, Field.Index.ANALYZED));
w.addDocument(doc);
}
}
//Gets string from a file and insert it in INDEX named indexed_document
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new FileReader("fullText100.txt"));
String line;
int i = 0;
Directory indexed_document = new RAMDirectory();
IndexWriter writer = new IndexWriter(indexed_document, config);
while((line=reader.readLine()) != null)
{
if(i == 1)
{
break;
}
itemsfreq = line.split(" ");
index_data(indexed_document,i,writer);
i++;
}
IndexReader r = IndexReader.open(indexed_document);
}
私はこのソリューションを適用し、それが働きました。 –