Fess 14.8のリリース

Fess 14.8をリリースしました。いつものように変更点を見ていきます。

#2731, #2732, #2733, #2739は検索APIに関連する修正で、従来のJSONで返していた検索APIを一新しました。新しい検索APIはOpenAPIのyamlファイルを作成したので、これを参照してください。今までのJSONの検索APIやGSAの検索APIを利用したい場合は、fess-webapp-classic-apiとfess-webapp-gsa-apiのプラグインを入れることで、利用することができます。

#2734はクロール設定の入力欄の文字数上限のデフォルト値を4000文字から10000文字まで引き上げました。Boxのデータクロールの設定で、パラメーターへの入力が4000文字を超える場合があるため、増やしました。

#2735はcrawler.document.append.filename=trueを設定することで、ファイル名をcontentフィールドに追加するようにしました。普通に検索して、ファイル名でも検索できるようにするためです。

#2736はDocker版の実行時にaudit.logもECS形式でログをコンソールに出力するようにしました。

#2737#2738は検索の実装的な修正です。FessをChatGPT PluginのRetrieverとして、動作するようなプラグインを作っているので、それに対応するために内部実装を変更しました。

#2742は利用しているOpenSearch 2.7に上げました。

#2743はコードの整理しただけです。

#2745はデータストアの設定で、キーがキャメル形式になっていたので、time_to_liveで指定できるように変更しました。

#2747はkeep_expires_docsの指定がtrueとfalseが期待する動作とは逆だったので、正しくしました。

という感じで、今回は検索APIが一新したのが大きな変更だと思います。ChatGPT Plugin対応など、このタイミングで検索API周りを整理しておかないと、今後の開発に影響がありそうだったので、整理しました。

何かあれば、フォーラムに投げてください。

OpenAPI対応

Fessでは、検索APIを提供していますが、今まで放置してきたOpenAPI対応に取り組むことにしました。既存のAPIをベースにopenapi.yamlを作れば良いかなと思っていたのですが、いろいろと作業していると、サジェストAPIとの整合性もほぼないですし、統一性がないので、思い切って、一新することにしました。

今回作成したOpenAPIのyamlファイルは、openapi-user.yamlという感じです。現時点では、足りない情報とかもある気はしますが、ちょっとずつ対応していこうと思います。ということで、14.8からはこのAPIがデフォルトになります。

で、今までのJSON APIやGSA APIはどうするか?ということですが、本体からは取り除いて、プラグイン化して、利用するようにしようと思います。なので、過去と互換性が必要であれば、プラグインを追加して、対応するみたいな感じを想定しています。

という感じで、次のバージョンからOpenAPIのyamlが提供される予定です。

Fess 14.7.0のリリース

Fess 14.7.0をリリースしました。細々としたものをいろいろと修正したような気もしますが、振り返っていきます。

まず、#2716はログファイルが指定した保存期間で古いのが消えるようにしました。90日以前のファイルは消すようになります。

#2717はサムネイルの保存ディレクトリのパス階層を変更しました。ファイルやディレクトリの数を減らすためです。

#2719はログファイルの出力形式をECS形式で出力できるようにしました。Docker版を利用すると、このバージョンからログがJSON形式で出力されるようになります。

#2721はjQueryのバージョンを最新化しました。

#2722はクロール時にHTMLのタグを取り除く機能があるのですが、取り除くタグをクロール設定の設定パラメーターにconfig.html.pruned.tagsで指定できるようにしました。クロール時にHTML上で無視したい利用域とかあれば、これでタグを指定できます。

#2723は内部で利用しているOpenSearchのバージョンを2.6にしました。

#2725はサムネイルの出力ログ周りの改善です。問題調査のログの整理をしました。

#2727は検索に失敗したときにシステムエラーでなく、検索失敗的なエラーメッセージを出す感じに変更しました。

#2728はドキュメントの部分更新の方法でupdate by queryで更新する対応を入れました。OpenSearchのNeural Searchを使うときにingest pipelineを使うのですが、pipelineはupdateを受け付けないためです。

#2729はScroll APIが動いていなかったので、修正しました…。

#2730はCopyrightが2022年のままだったので、更新しました。

という感じで、細々とした修正を入れた感じですが、そろそろOpenSearchのNeural Searchを使えるような状態にしていきたいなと思い、その辺の対応を入れている感じになります。現状でも、ベクトルで検索ができるのですが、いろいろと整理して、画像や音声もベクトル化して検索できるようにしていきたいなとは思っています。あとは、そろそろKubernetesでも簡単に使えるようにHelmチャートも用意しようと思ってはいますが、未着手です…。そんな感じですが、何かあればフォーラムに投げてください。