メンテナンスリリース的な感じですが、Fess 14.6.1をリリースしました。Playwrightのクロールがうまく行かない感じになっていたので、fess-crawler-playwerightのjarファイルを差し替えた感じです。Playwrightでのクロールが必要であれば、これを利用していただければと思います。
Fess 14.6.0のリリース
Fess 14.6.0をリリースしました。今回は、結構、細々としたものを含めて修正したような気分でもあります。
#2699はオフィス系のファイルで検索結果のタイトルにドキュメントのタイトルが表示されなくなっていたので、修正しました。
#2700は/api/admin/statsのパスでAdmin APIにサーバーの状態取得APIを追加しました。Admin APIでサーバーの情報を取得できるようになりました。
#2701は管理画面からbulkファイルをアップロードして、設定データを更新すると、ジョブが再起動されてしまうので、ジョブの情報が含まれていないようなファイルのアップロード時にはジョブを再起動しないようにしました。
#2702はPDFBoxなどがエラーレベルで普通にログを出力するので、この手のライブラリがERRORで出力されても、WARNに切り替えて、ログをするというのを追加しました。この手のライブラリが出すERRORログはFessにとっては、ERRORではないので、その調整をする感じなります。
#2703はFessの組み込みで利用しているOpenSearchのバージョンが2.4.1に変わりました。今まで、1系を利用していたので、最新化しました。これに合わせて、OpenSearch 1.xとElasticsearch 7.xのサポートはしないようになっていくと思います。現時点では、動いているようですが、これらで問題があっても修正しないと思うので、必要であれば、商用サポートに相談してください。
#2704はクロール設定を作るときに、除外パターンをデフォルトで設定できるようにしました。多くの場合、画像やCSSなどをクロール対象から除外すると思うので。
#2705はfessインデックスのsettingとmappingを書き換える設定を追加しました。fessインデックスは初回起動時に作成されますが、任意の設定を追加したい場合に差し込めるようにしました。セマンティックサーチを利用できる状態で起動したい場合に、インデックスの設定を変更したかったので、これを追加しました。
#2706は、内部的な話になりますが、表示件数を内部的に持ち回る必要があるための変更になります。これも、セマンティックサーチのプラグインに表示件数を渡す必要があるため、追加しました。
#2707はこれも内部的な話で、LuceneのQueryParserをラップすることで、生成されるQueryに外部から手を加えることができるようにするための変更です。これもセマンティックサーチで必要な変更でした。#2708も合わせて、Queryの処理を整理しました。
#2709は初回起動時のパスワードを指定できるようにしました。デフォルトのパスワード以外で初回起動したい場合もあると思いますし。
#2710はOpenSearchのデフォルト化する対応の修正になります。Fessでは、SolrからElasticsearchに、そして、ElasticsearchからOpenSearchへ、という感じで、標準で想定する検索エンジンをOpenSearchに切り替えていきます。今までは、Elasticsearchをメインで、OpenSearchもサポートしているよ、という感じですが、今後は、OpenSearchをメインで、Elasticsearchもサポートしているよ、という感じになります。なので、いままでどおりに、OpenSearchとElasticsearchのどちらでも動きます。
#2711はSSOログインのログメッセージの修正です。ログメッセージをわかりやすくしました。
#2712は管理画面でチェックボックスのフォームがある箇所で、項目名のところが反応してしまっていたので、修正しました。
#2713はこれを含めて、サジェスト生成周りの改善を行っています。サジェスト生成時に検索ログの情報を多く取りすぎていたので、必要最小限にしてます。
#2714はリリース作業チケットです。
#2715はパスマッピングの変換ログをデバックで出力するようにしました。
という感じで、いろいろと変更した感じです。何か問題などあれば、フォーラムをご利用ください。
Fessでセマンティックサーチ
Fessでキーワード検索ではなく、ベクトル検索をしないなっと思って、いろいろと挑戦していたけど、いい感じの形にならなかったので、どうしたものかと考えていたのですが、そんなとき、OpenSearch 2.4でneural-searchプラグインが標準で搭載されました。これをアレコレと確認したところ、Fessではこれをベースに作ったほうが良いかもと思い、fess-webapp-semantic-searchプラグインを作り始めました。
fess-webapp-semantic-searchプラグインは、neural-searchプラグインをFessでいい感じに利用できるようにする機能を提供して、Fess 14.6から使えるようにしようと思っています。今回、利用できるようにするために、あちこちと修正した気もしますが、ちょっと悩んだのが、検索語の入力方法で、クエリーのパースをどのようにしておくのが、Fessとして自然な利用になるのか?というところです。とりあえず、検索語入力欄に文章みたいなの入っていたら、それをneural queryにして、単語みたいなのはterm queryにするみたいな感じにすることを考えています。なので、クエリーパーサーの部分にも工夫が必要かなと考えています。
semantic-searchプラグインとしては、そんな感じで、クエリー処理周りをいい感じにするなどを対応していき、ベクトルをどう作るか?はneural-searchプラグインがTorchScriptで処理できるモデルをDJLで読み込んで処理する感じです。そのため、オレオレモデルを作っていくためには、TorchScriptで利用できるようなモデルを作る必要があります。そのうち、この辺も考えていこうかなと思っています。
あとは、雑談的な話としては、Fessもニューラルサーチプラグイン的な感じでも良いかなと思ったのですが、neural searchは日本で商標登録されているので、リスク回避のため、無難にsemantic searchプラグインにしました。
という感じで、セマンティックサーチの機能も地道に改善していければなと思っています。