Fess 14.10.0のリリース

Fess 14.10.0をリリースしました。Fessとしては、特に大きな変更はないのですが、OpenSearch 2.9でmapping char filterが辞書ファイルに#で始まるコメントを許可しないという破壊的な変更が入っているため、OpenSearchをアップグレードする際には注意が必要になります。Fessで利用しているmapping.txtで、#の行を削除しないと、fessインデックスがopenできない状態になります。

という感じですが、14.10の変更を見ていくと、

#2758はデータストアクロールで、インデクシングするURLに#を含めると、検索結果でリンクが機能しないという問題があるのを対応しました。

#2759はデータストアクロールでは設定パラメーターで指定するような値が利用できないので、パラメーターの入力されたものを利用できるようにしました。CSVリストクロールなどのときに、CrawlerClientが指定されたURLにアクセスするときのパラメーターとして渡せるようになりました。

#2760はAzureADを認証として利用して、AzureADを利用したファイルシステムのクロールするときに認証情報が異なるので、それに対応するようにしました。

#2762はFessのアップグレード処理関連の更新です。今回はmapping.txtの問題があるので、アップグレードを実行すると、mapping.txtから#〜を削除してくれる機能を追加してあります。なので、OpenSearch 2.9でfessインデックスが起動できないときには、アップグレードを実行すると、mapping.txtの問題を修正してくれます。

という感じで、OpenSearch 2.9のmapping char filterの処理が変更された問題はありますが、何かあれば、フォーラムをご利用ください。

Fessでセマンティックサーチ

Fess 14.9.1にfess-webapp-semantic-searchプラグインを入れることで、通常のキーワードベースの検索に加えて、ベクトルで検索した結果をマージして利用することができます。以前のプラグインでは、上位X件しか、ベクトル検索の結果を表示できなかったのですが、Fess 14.9.1以降ではReciprocal Rank Fusion(RRF)によって、ベクトル検索の結果をマージすることができるので、キーワード検索の結果でページングすることができ、通常の検索システムとしても利用できます。

利用方法は、fess-webapp-semantic-searchのREADME.mdに書いてあるとおりですが、Dockerであれば、簡単に試すことができると思います。まず、docker-fessをcloneして取得します。

git clone --branch v14.9.1 --single-branch https://github.com/codelibs/docker-fess.git
cd docker-fess/compose

compose.yamlを編集して、プラグインがインストールされるようにします。以下のように環境変数に設定されるようにします。

      - "FESS_PLUGINS=fess-webapp-semantic-search:14.9.0"

Fessを起動します。

docker compose -f compose.yaml -f compose-opensearch2.yaml up -d

OpenSearchにモデルをロードさせるために以下のスクリプトを取得してセットアップします。一応、多言語対応のモデルを利用して、ベクトルを生成していますが、必要に応じて、モデルを変更するなどしてください。

curl -o setup.sh https://github.com/codelibs/fess-webapp-semantic-search/blob/fess-webapp-semantic-search-14.9.0/tools/setup.sh
/bin/bash setup.sh

setup.shを実行すると、fess.semantic_search.〜が表示されるので、これは、Fessにログインして、全般のシステムプロパティの入力欄にコピペしてください。

あとは、管理画面のメンテンナンスページにいき、再インデクシングを実行してください。この状態では、何もインデクシングされていないと思いますが、再インデクシングすると、ベクトル検索が可能なインデックスに更新する処理が走ります。

あとは、普通にクロールして、検索するだけです。何かあれば、フォーラムとかで気軽に聞いてください。

Fess 14.9.1のリリース

Fess 14.9.1をリリースしました。セマンティックサーチ関連で調整が必要だったので、その修正をしました。

#2753はベクトル検索などから返ってくる結果が0件だったりすると例外が出る状態だったので修正しました。

#2754はベクトル検索などから返ってくる結果のスコアが低いものは足切りしないと、関連しないものが表示されるので、それを切り捨てるための最低スコア値を設定できるようにしました。

#2755はヘルパークラスなど、Config Loaderが実行される際に呼びさせるような処理を追加しました。

という感じで、fess-webapp-semantic-searchプラグインが利用する機能を追加しました。このプラグインは近いうちにりりーする予定ですが、これにより、自然な形でFessの結果にセマンティックサーチの結果を織り交ぜて、表示することができるようになります。

という感じですが、何かあればフォーラムをご利用ください。