ドキュメント内の列名に基づいて、6ヶ月以上前のドキュメントを削除するために、DocExpirationUpdateProcessorFactoryの設定についての助けが必要です。

トピック作成者:ks-solruserml-bot (2024/05/23 13:08 投稿)
1
CloseClose

(The bot translated the original post https://lists.apache.org/thread/dkozy09cgvnh3kgokgmlq4cmzsfrcl64 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、ユーザーの皆さん、

私は Solr バージョン 7.4.0 を使用しています。デフォルトの solrconfig.xml を使用して作成されたコレクションが約10個あります。

いくつかのコレクションには、インデックスされた *solr_created_dttm* というカラムがあります。これらのコレクションから6ヶ月以上前のすべてのドキュメントを削除したいと考えています。

*DocExpirationUpdateProcessorFactory* を solrconfig.xml に追加する必要があると理解しています。

追加する必要がある設定について助けていただけませんか?いくつかの方法(有効期限フィールドの追加など)を試しましたが、*solr_created_dttm* が6ヶ月以上前かどうかをどのように計算するのか確信が持てませんでした。

また、すべてのコレクションが同じ構成ファイルを共有しているため、このプロセッサは "*solr_created_dttm*" を持たないコレクションには影響しないと理解しています。私の理解が正しいか確認してください。私は "*solr_created_dttm*" を持つコレクションからのみドキュメントを削除したいと考えています。

事前に感謝します!

よろしくお願いします、
Amruta

返信投稿者:ks-solruserml-bot (2024/05/23 13:08 投稿)

既存のコレクションに既存のドキュメントが含まれている場合、この時点で DocExpirationUpdateProcessorFactory を追加しても、「created」日付フィールドが6ヶ月以上前のドキュメントを削除するのには役立ちません。

DocExpirationUpdateProcessorFactory が提供するのは、以下の2つの機能です。これらは一緒に使用することも、独立して使用することもできます:

  1. インデックス作成時に、相対的な「TTL」(存続期間)から計算された絶対的な日時を含む追加の「expirationField」を追加する。これは、各ドキュメントにフィールドとして、またはインデックス作成時のリクエストパラメータとして指定することができます。

  2. expirationField が過去にあるドキュメントを削除するための定期的なタイマーを提供します。

仮に、DocExpirationUpdateProcessorFactory を solrconfig.xml に追加し、全てのドキュメントに「+6MONTH」の TTL フィールドを含む DefaultValueUpdateProcessorFactory を追加し、全てのドキュメントを再インデックス化した場合、DocExpirationUpdateProcessorFactory はこの新しい有効期限フィールドに基づいてドキュメントを定期的に削除し始めることができます。

または、単に小さな cron ジョブを設定して、既存のフィールドに対して同様の(ただし否定された)日付数学を使用して、solr_created_dttm に対して定期的に DeleteByQuery リクエストを実行することもできます。

<delete><query>solr_created_dttm:[* TO NOW-6MONTH]</query></delete>

-Hoss
http://www.lucidworks.com/

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?