、私は応答なしとLuceneのインデックスAPIに関するいくつかの質問で自分自身を発見した: 最初の1が次のスニペットに関連している:LuceneのIndexWriterの明確化
IndexWriter writer = //open an index for writings.
// ... do some heavy updates (inserts and deletes) to the index using 'writer'
IndexReader reader = writer.GetReader();
long[] idsArray = Field_Cache_Fields.DEFAULT.GetLongs(reader, "ID_Field");
//under the assumption that ALL indexed documents contain field with the name "ID_Field".
がそれです私が得た読者は、LuceneのAPIによって約束されていますが、コミットされていないインデックスを更新しても常に更新されますか?ちょうど私の答えは明確であることを確認しますWONTリーダーと追加されたすべてのドキュメントで見られるすべての削除されたドキュメントは次のようになります。..
2番目の質問は、次のスニペットに関連している:
IndexWriter writer = //open an index for writing, but dont change a thing - just commit meta data.
writer.Commit["Hello"] = "World";
writer.Commit();
が、それは約束されてのメタデータはインデックスにコミットされますが、実際にインデックスを変更することなくメタデータを開いたのですか?質問の両方で
私はAPIによって意味されたかを知ることが幸せになります、また、いくつかのいずれかの問題について知っている場合(バグ?)2.9.2
おかげでみんなのLucene .NETとの具体的な!
私は最初の質問はこの質問に答えていると思います:http://stackoverflow.com/questions/5420566/lucene-net-writing-reading-synchronization。 Reopen()を呼び出さない限り、基本的にインデックスの変更は表示されません。 – goalie7960
はい私は間違った質問を読んだと思う。 GetReader()を呼び出した後に索引を変更すると、索引の最新バージョンは取得されません。 – goalie7960