Fess 14.9のリリース

Fess 14.9をリリースしました。大きな機能追加はないですが、OpenSearch 2.8がリリースされているので、それに対応するリリースです。今回の修正点は

#2749はFessのwebappプラグインで、CORSを修正できるようにしました。この機能がないと、ChatGPTプラグインをローカルモードで実行できなかったりするため、追加しました。

#2750はサムネイル生成スクリプトを修正しました。PDFからのサムネイル生成がうまく行かないケースがあるようなので、その対応です。

#2751は複数の検索結果を融合する機能です。今回は実験的に追加しました。この機能により、通常の検索結果に、ベクトル検索した結果を融合することができます。融合方法は、Reciprocal Rank Fusionで行います。今後、セマンティックサーチの機能検証をしながら、改善していく予定です。

という感じです。何かあれば、フォーラムに投げてください。

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が提供される予定です。