16

luceneインデックス(Nutchを使用して複数のWebページをクロールして作成)にアクセスする必要がありますが、上記のエラーが発生します:

java.io.FileNotFoundException: no segments* file found in org.apache.lucene.store.FSDirectory@/home/<path>: files:
    at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:516)
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:185)
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:148)
    at DictionaryGenerator.generateDict(DictionaryGenerator.java:24)
    at DictionaryGenerator.main(DictionaryGenerator.java:56)

私はグーグルで検索しましたが、与えられた理由は要件と一致していませんでした。ファイル(パス)が表示されているという事実は、おそらくディレクトリが空ではないことを意味します。
ありがとう

4

3 に答える 3

28

もう 1 つのヒントとして、同じエラーが発生し、インデックスを作成した後に IndexWriter を閉じておらず、非常に許されていなかったことがわかりました。私のindexdirectoryにはいくつかの.lockファイルがあり、Readerが探しているsegmentsまたはsegments.genファイルはありません。詳細はこちら#3

于 2013-12-24T20:14:07.603 に答える
9

基本的に、エラー メッセージは、Lucene がインデックス ディレクトリに適切なファイルを見つけられなかったことを示しています。以下を確認することをお勧めします。

  1. インデックス ディレクトリのパスが、想定どおりのものであることを確認します。
  2. 使用されている Nutch と Lucene のバージョンは一致していますか? これは、バージョンの違いが原因である可能性があります。
  3. 権限の問題はありますか? ディレクトリ内のファイルを読み取ることができますか?
  4. Lukeを使用してインデックスを調べてみてください。できない場合は、インデックスが破損している可能性があります。

これらすべてが役に立たない場合は、コードのインデックス部分を投稿してください。

于 2010-09-27T09:26:27.400 に答える