# データストアのクローラ実施時に前回のインデックスの履歴を削除できるか。

**URL:** <https://discuss.codelibs.org/t/topic/1904>\
**Category:** Japanese:Fess\
**Created:** [June 10, 2022, 10:53am UTC](https://discuss.codelibs.org/t/topic/1904 "2022-06-10T10:53:42Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaito](https://discuss.codelibs.org/letter_avatar_proxy/v4/letter/k/f08c70/32.png) [@kaito](https://discuss.codelibs.org/u/kaito)\
**Post date:** [June 10, 2022, 10:53am UTC](https://discuss.codelibs.org/t/topic/1904/1 "2022-06-10T10:53:42Z")

</div>

Webhookを使用し、masterブランチに変更があった際に対象のGitデータストアのクロールを実行しようとしています。  
クロールの実行タイミングが不定期のため、全般設定の「以前のドキュメントを削除」の設定は「-1」としています。  
そのため、Gitデータストアのクロール実行時に前回のクロール実行時の履歴を削除したいと考えています。  
何か方法があれば、ご教授をお願いいたします。

---

<div class="post-metadata">

**Author:** ![shinsuke](https://discuss.codelibs.org/user_avatar/discuss.codelibs.org/shinsuke/32/6_2.png) [@shinsuke](https://discuss.codelibs.org/u/shinsuke)\
**Post date:** [June 11, 2022, 1:36am UTC](https://discuss.codelibs.org/t/topic/1904/2 "2022-06-11T01:36:04Z")

</div>

データストアはデフォルトで、DataIndexHelperの[この条件](https://github.com/codelibs/fess/blob/fess-14.1.1/src/main/java/org/codelibs/fess/helper/DataIndexHelper.java#L237-L241)で古いドキュメントは削除されます。なので、スクリプトでexpiresをクロール時刻とかにして、ドキュメントをバージするジョブを止めておけば良さそうな気もします。

---

<div class="post-metadata">

**Author:** ![kaito](https://discuss.codelibs.org/letter_avatar_proxy/v4/letter/k/f08c70/32.png) [@kaito](https://discuss.codelibs.org/u/kaito)\
**Post date:** [June 14, 2022, 5:13am UTC](https://discuss.codelibs.org/t/topic/1904/3 "2022-06-14T05:13:32Z")

</div>

ご回答ありがとうございます。  
上記の回答についてですが、Gitデータストアのスクリプト設定で1世代前のクロール時刻を設定するということでしょうか。

---

<div class="post-metadata">

**Author:** ![kaito](https://discuss.codelibs.org/letter_avatar_proxy/v4/letter/k/f08c70/32.png) [@kaito](https://discuss.codelibs.org/u/kaito)\
**Post date:** [June 14, 2022, 8:53am UTC](https://discuss.codelibs.org/t/topic/1904/4 "2022-06-14T08:53:34Z")

</div>

Gitデータストアのスクリプト設定にて、「expires」を下記のパターンで設定を行いました。  
現状下記の設定方法では、前回クロール時のインデックス情報を削除することができておりません。

なにかご回答いただいた設定方法と認識齟齬等ありますでしょうか。  
お手数ですが、ご確認をお願いいたします。

【設定内容①】  
expires=“前回実施のクロール情報の時刻(終了時間、開始時間等)”

【設定内容②】  
expires=“実行した最新のクロールより、未来の時間”

「expires」は下記で設定しています。  
expires="[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]"

---

<div class="post-metadata">

**Author:** ![kaito](https://discuss.codelibs.org/letter_avatar_proxy/v4/letter/k/f08c70/32.png) [@kaito](https://discuss.codelibs.org/u/kaito)\
**Post date:** [June 14, 2022, 9:53am UTC](https://discuss.codelibs.org/t/topic/1904/5 "2022-06-14T09:53:05Z")

</div>

また、追加で質問となるのですが、Gitデータストアの設定変更に合わせ、全般設定の「以前のドキュメントを削除」の設定を「-1」にしたことで、ファイルシステムのインデックスが削除されない設定となりました。

ファイルシステムの設定のみデフォルトの値である3日でインデックス情報を削除することはできますでしょうか。  
ファイルシステムは毎日定時にクローラジョブを実行しているので3日前のドキュメントを削除できれば問題ないです。

---

<div class="post-metadata">

**Author:** ![shinsuke](https://discuss.codelibs.org/user_avatar/discuss.codelibs.org/shinsuke/32/6_2.png) [@shinsuke](https://discuss.codelibs.org/u/shinsuke)\
**Post date:** [June 14, 2022, 9:01pm UTC](https://discuss.codelibs.org/t/topic/1904/6 "2022-06-14T21:01:43Z")

</div>

expiresを設定しても変わらないのだと、DataIndexHelperでの削除する条件で何かが満たされていないのだと思います。現状の情報では何とも言えないので、デバッグログとかを見るなどして調べていただくとかしかない気もします。  
「以前のドキュメントを削除」を設定すると、インデックスされているドキュメントに対しての条件になるので、個別の制御はできません。
