0

重複の可能性:
Lucene が既存のドキュメントの更新をサポートしない理由

ドキュメントがインデックス化された後 (再インデックス化せずに) 保存されたフィールド値を更新することは可能ですか?

4

1 に答える 1

3

簡単な答え: いいえ。

ドキュメントを削除して再度追加する必要があります。これは保存されたフィールドであり、インデックス付きのフィールドです。IndexWriter.updateDocument() Javadocを参照してください。

「最初に用語を含むドキュメントを削除し、次に新しいドキュメントを追加することで、ドキュメントを更新します。削除と追加は、同じインデックスの読者から見たようにアトミックです (フラッシュは追加後にのみ発生する可能性があります)。」

もう 1 つの代替手段は、更新が必要なデータを Lucene の外部 (リレーショナル DB など) に格納することです。

保存されたフィールドまたはインデックス フィールドのインプレース更新を可能にするために、あらゆる種類の作業が進行中ですが、Lucene V4 以前について具体的なことは何もありません。

于 2012-10-06T18:09:31.847 に答える