ManifoldCF と Solr の組合せで
ファイルサーバのドキュメントをクローリングしている場合
ドキュメントからテキストデータを抽出する処理で
エラーが発生するとクローリングが止まってしまう。
エラーが発生したドキュメントはスキップして
クローリング自体は継続したいというニーズはあるとおもう
- MSオフィスやPDFからテキストデータを抽出する処理は Solr (Tika) が行っている
- ドキュメントが暗号化されている場合などでは,この処理の中でエクセプションが発生する
- これにより、Solr は ManifoldCF に HTTPステータス500 を返す
- 500 を受け取った ManifoldCF はSolr に障害が発生したと判断し、ジョブを停止してしまう
- Solr には Tika で エクセプションが発生しても 無視するオプションがある
ignoreTikaException
solrconfig.xml にこれを設定することで、クローリングを止めずに継続することができる。
<requestHandler name="/update/extract" startup="lazy" class="solr.extraction.ExtractingRequestHandler" > <lst name="defaults"> <bool name="ignoreTikaException">true</bool> … </lst> </requestHandler>
Tika で発生した Exception は WARNIG として扱われるようになる