S3のクロールでdefaultMaxLengthが反映されない

S3をクロールした際, org.codelibs.fess.crawler.exception.MaxLengthExceededExceptionが出たため,contentlength.xmldefaultMaxLengthを変更したが反映されない

環境

  • Fess 14.3.0
  • ElasticSearch 8
  • docker
  • MacBookPro 16 (M1 Max)
    • Monterey 12.5.1

実行したこと

docker exec -it fess01 bash

# コンテナ内

# 10倍にしてみる
$ sed -i -e s/10485760/104857600/ app/WEB-INF/classes/crawler/contentlength.xml

# fess サービスの再起動
$ /etc/init.d/fess restart

上記操作の後,再びクロールしたが同じエラーでクロールできていませんでした.

考えたこと

  • プラグインを用いている場合,別の操作が必要
  • /etc/init.d/fess restart では反映されない
  • 変更する部分が間違っている

S3をクロールする際にインデックスする対象のファイルサイズを変更する方法を教えていただければ幸いです

Dockerでなく、ZIP版などで試しても同様でしょうか?

ご返信ありがとうございます.

  • Debian 11.3 on Parallels
  • ElasticSearch 8.3.3 (tar.gz)
  • Fess 14.3.0 (zip)

の組み合わせで試してみました

contentlength.xmlを編集後,./bin/fessで起動してみましたが,やはりFailure URL Detailsに org.codelibs.fess.crawler.exception.MaxLengthExceededExceptionが発生しておりました.

org.codelibs.fess.crawler.exception.MaxLengthExceededException: The content length (22496230 byte) is over 10000000 byte. The url is https://[my-bucket-name].s3.ap-northeast-1.amazonaws.com/[my-uploaded-file-name].pdf
at org.codelibs.fess.ds.s3.AmazonS3DataStore.storeObject(AmazonS3DataStore.java:226)
at org.codelibs.fess.ds.s3.AmazonS3DataStore.lambda$crawlBuckets$0(AmazonS3DataStore.java:175)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)

EC2上のUbuntuでも試してみましたが同様でした(こちらはdockerですが).

データストアの場合はその実装による場合もあるので、S3のデータストアクロールであれば、クロール設定のパラメーターでmax_size=104857600 のような設定をすると、良いと思います。

max_sizeパラメータの指定で成功しました.ありがとうございました.