インデックスが総ディスク容量の 10% 以上を占めるたびに、SOLR インデックスをパージしたいと考えています。パージにより、最も古いドキュメントが削除され、インデックス スペースが合計スペースの 10% 未満になります。これらの最も古い文書を見つけるにはどうすればよいですか?
単一のドキュメントのサイズを見つけ、それをベースとして使用して、削除するドキュメントの数を決定することを考えました(日付の昇順および行= Nでソート)。それについて行く他の方法はありますか?ありがとう。
インデックスが総ディスク容量の 10% 以上を占めるたびに、SOLR インデックスをパージしたいと考えています。パージにより、最も古いドキュメントが削除され、インデックス スペースが合計スペースの 10% 未満になります。これらの最も古い文書を見つけるにはどうすればよいですか?
単一のドキュメントのサイズを見つけ、それをベースとして使用して、削除するドキュメントの数を決定することを考えました(日付の昇順および行= Nでソート)。それについて行く他の方法はありますか?ありがとう。
ドキュメントのインデックスを作成するときに、ドキュメントがインデックスに追加された日時を記録するタイムスタンプ フィールドを有効にできます。次に、タイムスタンプ フィールドに対してクエリを実行して、最も古いドキュメントを特定できます。以下は、Solr の例の schema.xml に含まれていたが、最近のバージョンでは削除された例です。
<!-- Uncommenting the following will create a "timestamp" field using
a default value of "NOW" to indicate when each document was indexed.
-->
<!--
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
-->
ドキュメントの平均サイズを決定し、それに基づいてセット数を削除するという戦略は、有効なオプションのように思えます。
これを試すことができると思います: