ドキュメントのエクスポートでエラーが発生してもクローリングを続けるおまじない ignoreTikaException [メモ]

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 として扱われるようになる