2

PDF/Word/Excelなどを大量に持っています。インデックス化するファイル (現在は 40GB、数か月で最大 1000GB になる可能性があります) で、Solr を DataImportHandler と Tika と共に使用することを検討していました。この件に関する多くのトピックを読みましたが、まだ解決策が見つからない問題が 1 つあります。すべてのファイルにインデックスを付ける場合 (フルまたはデルタ インポート)、ファイル システム内のファイルを削除し、再度インデックスを作成する場合 (デルタ インポート)、そのファイルに対応するドキュメントはインデックスから削除されません。

ここにいくつかの可能性があります:

  • フルインポートを行います。しかし、これは非常に時間がかかり (数日ですが、それほど重要ではありません)、帯域幅を消費する可能性があるため (ファイルが共有ネットワーク ドライブ上にあるため、主な問題)、これをできるだけ避けたいと考えています。
  • インデックス内の各ドキュメントについて、対応するファイルが存在するかどうかを確認するスクリプトを実装します (帯域幅の消費量がはるかに少なくなります)。しかし、これを Solr の内部または外部のどちらで行うべきか、またその方法もわかりません。

他のアイデア、または2番目のソリューションを実行する方法はありますか? 前もって感謝します。

いくつかの詳細:

  • FileListEntityProcessor の「newerThan」オプションを使用してデルタ インポートを行います。
  • ドキュメントがインデックス化された日付を保存しても、最後のインポートで 1 つのドキュメントをインデックス化していない場合、削除された、または変更されていない (デルタ インポート) ことが原因である可能性があるため、役に立ちません。
  • 保存されたフィールドと保存されていないフィールドの両方があるので、Solr 4.0 の新しい可能性を使用してドキュメント内の 1 つのフィールドだけを変更することは解決策になるとは思いません。
4

1 に答える 1

2

ファイル システム モニターを使用して削除を検出し、インデックスを更新することを考えたことはありますか?

apache.commons.io がそれをサポートしていると思います。apache.commons.io.monitorパッケージ、FileAlterationObserverおよびFileAlterationMonitorクラスを
確認してください。

于 2012-11-13T12:07:08.610 に答える