2017-03-04 5 views
0

私は概念ベースの画像検索エンジンを作成するためにLuceneを使用しています。まず、データベースを開いてRAMインデックスにコピーします。次に、ユーザー入力単語とその同義語を見つけるためのアナライザーを作成します。最後に、インデックスを開いて結果を得たいと思っています。RAMDirectoryにセグメント*ファイルが見つかりません

getImage() - 私のインデックスに(addDocを呼び出すために使用される)コピーデータベース

これは私が結果を取得するために使用したいgetImageResult()です。多分、これはバグだと思う。

しかし、私は削除する場合:

StandardAnalyzer analyzer = new StandardAnalyzer(); 
IndexWriterConfig config = new IndexWriterConfig(analyzer); 

IndexWriter iwriter = new IndexWriter(index, config); 
iwriter.commit(); 

それは例外が発生します:なしセグメント* RAMDirectoryで見つかったファイル。 もし私がこの部分を守れば、私は結果を得ることができません。

+0

スクリーンショットにコードを入力しないでください。それを質問にコピーしてください。 – femtoRgon

答えて

0

私は完全にはわかりませんが、そこに最初のスニペットを付けてインデックスに書き込もうとしていて、次に2番目のスニペットで検索しようとしていますか?

getImageResult()新しいディレクトリで新しいインデックスを開く方法。以前に別のRAMDirectoryに書かれたものは、あなたがそこで検索することができません。

あなたがすべき次のいずれか

  • 使用同じ両方の場所でRAMDirectory、またはそれがファイルシステムに保存されるとFSDirectory、であなたのインデックスを開き、
  • を再度開くことができます。 FSDirectory.open
関連する問題