Fess 14.5.0のリリース

Fess 14.5をリリースしました。本当はもっと早くリリースしたかったのですが、Elasticsearch 8.5には、クローズしたインデックスがあると/_node/statsでエラーを返すというバグがあり、これが修正されたら、リリースするかと思っていたのですが、どうやら、8.5系では修正する感じではなさそうなので…。この辺の話は後回しにして、Fess 14.5の修正内容を見ていくと、

#2685は、xalanの依存関係を消すというものです。過去の遺産的なライブラリ感もあるので、今後のメンテなども考え、xalanを取り除き、今風?な状態にしました。

#2686は、クロール負荷などをCPUの状況を見て、調整するパラメータがあるのですが、世の中の利用動向を見ると、激しいクロール設定を作って、Fessが重い…という使い方の問題を定期的に見るので、デフォルトで、このパラメータを50にすることで、クロールなどがCPU負荷の50%を超えると待ち状態になるようにしました。ということで、Fessが重い、と言う人は減ると思いますが、クロールが遅い、という人が出てくるかなとも思いつつ、CPU負荷が高いと言われるよりマシかなと…。そんな感じで、意図的にCPUを全力で利用したい人は0を設定してください。

#2687#2688は、Playwrightによるクロール対応になります。Playwrightを利用したクロールを参照してください。

#2689は、SAMLによるログインで利用しているoneloginのライブラリが無駄なログを出すので、そのログを抑制するためのものです。

#2690は、フォーラムとかで問い合わせがあったりもしたので、SAMLのライブラリを更新して、それに合わせて、コードを整理しました。

#2691は、クロール設定でパラメーターのキー名が古い形式のものが使えなくなってしまっていたので、古い形式の指定方法でも使えるようにしました。

#2692では、Groovy 4にバージョンを上げました。

#2693は、実装的な話ですが、InterruptedRuntimeExceptionを使うべき場所では利用する、ようにしました。

#2694は、APIでエラー系のレスポンスがボディを返していなかったので、返すようにしました。#2695はそれに合わせて、レスポンス内のエラーメッセージをコード値を返せるようにもしました。

#2696は、log4jのバージョンを上げたら、scriptを設定ファイルで使うためにはいろいろとやらないとダメになったため、シンプルにscriptを使わないように変更しました。それに合わせて、コンソールでの出力をしないようにしました。コンソール出力は開発時に便利なので利用していましたが、通常利用では関係ないので、影響はないと思います。

という感じです。そして、話をElasticsearchに戻しますが、現状、FessはElasticsearchとOpenSearchをサポートしています。Elasticsearchはオープンソースでもないですし、今回のバグもすぐに修正される感じもないですし、今後は、FessはOpenSearchとElasticsearchをサポートする感じにします。どっちも今までどおりサポートされますが、簡単に言うと、サポートの優先順位が変わります。(あとは、OpenSearch 2.4とか見ると、いろいろと面白い取り組みがあり、Fessでもそれらを活用して、何かできそうな感じでもありました)

そんな感じではありますが、何かあれば、フォーラムをご利用ください。

Playwrightを利用したクロール

Fessでは、もともとWebDriverを利用したクローラーなどがありましたが、最近ではメンテするのが面倒だったので、取り除いていました。しかしながら、JavaScriptもいい感じ処理できるようなクロールの仕組みは必要で、最近、Fessとか関係ない話で、Playwrightを使うことが多くなっていたので、そのうち、使えるようにしようとは考えていました。ということで、今回その機能を入れました。

とはいえ、今までも使うのが、かなり面倒でWebDriver版でクロールしようと思えばできる、くらいで仕組み的には、汎用的な感じではありませんでした。今回は、そこら辺も整理して、使いやすい感じにしてみました。

使い方としては、

  • Playwrightの実行環境がインストールされている
  • クロール設定で、設定パラメーターで設定する

をすれば、通常のウェブクローラーの変わりにPlaywrightでクロールします。設定パラメーターは以下を設定すればOKです。

client.crawlerClients=playwright:http://.*,playwright:https://.*

あとは、いつもどおりにクロールを実行するだけです。ひとまず、実験的な機能な感じではあるので、細かい問題はあるかもしれませんが…。マルチスレッドでクロールできるのか?とかもちょっと怪しい気もしますし。とりあえずは、試しながら改善はしていく予定です。

Fess 14.5から利用可能になる予定ですが、興味があれば利用してみてください。

Fess 14.4.0のリリース

Fess 14.4.0をリリースしました。細々とした修正が多いのですが、今回は、standard_analyzerを変更しているので、再インデクシングすると、同義語の挙動がちょっと変わる可能性があると思います。今回の修正をざっとまとめると、

#2671は独自のsynonym tokenizerを標準的なsynonym token filterを使うように変更しました。メンテとかいろいろと考えると、できるだけ標準のものを使っていったほうが良いかなと考えているのと、以前のように実行したまま、analyzerを変更したいような要件も少なくなったので、頑張って提供する必要はないかなと思っています。

#2672はサジェストの生成オプションで、ログからなのか、ドキュメントからなのか、のオプションの処理で、処理がうまく行かないパターンがあったので修正しました。

#2673フォーラムでクロールジョブを複数作ったときにロブファイルが分けたいという話があったので、ジョブの設定でlogSuffix (“suffix”)で指定できるようにしました。fess-crawler-suffix.logみたいな名前になる想定です。

#2675はsitemaps.xmlなどに大量にURLを記述した場合、Elasticsearchの取得上限に引っかかるため、エラーにならずに処理できるように修正しました。

#2676はbc*系のjarをJava 8以上のものに置き換えました。

#2678はウェブクロールのフィルタ設定でも#DISABLE_URL_ENCODEを使えるようにしました。(プルリクをもらいました。ありがとうございます!)

#2679はOIDCの処理でgroupsも取得するようになりました。(プルリクをもらいました。ありがとうございます!)

#2680は今までfess-ds-csvとfess-ds-dbはバンドルしていたのですが、リリースの手間になったりも指定なので、このバージョンからデフォルトで入れておくのをやめました。必要であれば、管理画面のプラグインからインストールしてください。

#2681はいつものリリース作業用の対応です。

#2682はJSONレスポンスに例外情報などを含めないオプションを追加しました。#2683はそのGSAレスポンス版です。

#2684はM1 Macだと、JNAのwarningログが出てしまうので、出ないようにしました。

他にも依存ライブラリの更新とかもしていますが、何かあればフォーラムをご利用ください。

Fess 14.3のリリース

そろそろリリースしておこうと思ったので、Fess 14.3をリリースしました。今回は、特に大きな変更などはありません。変更内容を見ていくと

#2666はクロール中にElasticsearchのHot Threadをログすることができるようになります。性能のチューニングを細かく実施していくためには、Hot Threadを確認することもあるのですが、個別に叩くのも面倒なので、クロール設定で、.hotThread(10)とかを呼び出しておけば、fess-crawler.logに10秒ごとに出力することができます。

#2667はメンテナンス画面でインデックスのクローズ・オープンするときに辞書ファイルをきちんと書き出しておくようにしました。

#2668は内部的なコードの修正でnullの扱い周りを修正しました。

#2669は内部的に利用しているOpenSearchのバージョンを1.3.4に上げました。内部的に利用しているものの話なので、連携したいElasticsearchやOpenSearchには関係ないです。

#2670はリリース作業に伴う変更です。

という感じで、大きな変更はありません。気になることなどあれば、フォーラムを利用してください。

Fess 14.2のリリース

Fess 14.2をリリースしました。大きな変更はありませんが、URLをクリップボードにコピーしたいという、長年あった要望に対応しました。なので、検索結果画面にコピー用のアイコンが表示されています。

今回の主な変更点は以下のような感じです。

#2657はMinIO連携したときに有効になるストレージ機能で、タグを設定できるようになりました。MinIOはS3互換なのでS3のタグと同様な感じの機能に対して、Fessから設定できるようになった感じです。

#2658#2659は検索結果画面でURLをクリックボードにコピーするアイコンを追加しました。ついでに、他の表示内容も整理しました。#2662でfess_config.propertiesでclipboard.copy.icon.enabledでアイコンを表示・非表示を調整できるようにしました。

#2660はOpenSearchDefinitionのリンクをfess_config.propertiesで無効にする設定を追加しました。EdgeがWindows統合環境のSSO環境において、このリンクで謎の挙動をすることで、SSOが無効になる挙動が確認されたので、設定で無効にできるようにしました。

#2661は英語のラベルが実状と合うように変更しました。

#2665はデータストアクロールでパラメータにkeep_expires_docs=trueを指定すると、ドキュメントの有効期限が切れていても残すような設定を追加しました。フォーラムのこの話の対応です。

という感じで、他には、OpenSearch 2.0に対応したとかもありますが、何かあればフォーラムをご利用ください。