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.4neural-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プラグインにしました。

という感じで、セマンティックサーチの機能も地道に改善していければなと思っています。

玄人志向 KRPW-PA1000W/92+ 

最近のGPUはやたら電力を消費するし、接続するコネクタも新たなものがでてきたりと、新しいGPUを使うことができない感じになってきているので、今回、PC電源を購入することにした。

40系のGPUとかだと、12VHPWR規格への対応が必要みたいな感じだったので、玄人志向KRPW-PA1000W/92+を購入した。そもそものところだと、12VHPWERに対応した電源の選択肢がまだ少ないので、80PLUS PLATINUMだし、これにしてみるか、的な感じで選択した。

ケーブル自体は付属しているので、それを指していけばよいだけで、特に問題はなかった。

がしかし、12VHPWRに対応していると言うだけあって、12VHPWRのケーブルも付属しているのだが、このケーブルがおかしい…。ケーブルには、PCIeに電源へ繋げと書いてあるが、ATX12Vの口にしか入らない…。ATX12Vはマザーボードにつなぐ必要があるので、この口を使うわけにもいかない…。というわけで、12VHPWRケーブルは不良品な気がする。Amazonのレビューコメントにも同じようなことを書いてあったので、たぶん、設計ミス的な感じかもしれない…。直近、12VHPWRで繋がないから、良いけど、GPUを買ったら、ケーブルを買うなどしないといけない気がする。

という感じで、よくわからない部分がある製品だと思います…。12VHPWRに対応していないと思えば、普通の電源として利用できると思います。玄人志向の製品は他にも結構使っているので、今回の謎仕様はちょっと残念な気分になりました…。

追記(2023/01/25): 付属品に関するお知らせとお詫びが公開されていたので、申請して無事に正しいケーブルを入手できました。

Fractal Define 7 Solid

最近のGPUは大きくて、今利用しているPCケースでは入らない場合が多かったので、そろそろPCケースを買い替えたほうが良いなと思い、今回、FractalのDefine 7 Solidを購入してみた。

Define 7も透明だったり、光ったり、いくつか種類があるのだけど、今回はその辺は求めていないので、Solidを選択した。今回、購入にあたり、

  • ATX対応
  • PCケースの高さが50cm以下(設置する場所に高さ制限がある…)
  • 45cm以上のGPUが利用できること

というのを基本条件で探して、見た感じにも良さそうだったので、Define 7 Solidにした。色はこだわりは特になかったので、白にして、24,180円で入手できた。

今まで利用していたものをそっくりそのまま、移行したけど、特にハマることもなく移行できたので、使い勝手も良い。上面のカバーも空調優先か静音優先かで、取り替えることもできるのだけど、GPUを使うと熱も出るから空調優先にしてみたりと選べる感じでもある。PCケースの標準ファンも気にならない感じで(むしろ、今までのほうがうるさかったかも…)、このPCケースは個人的にはおすすめできる感じである。

という感じで、Fractalのものを買ったことがなかったけど、大変満足ができる買い物ができた気がする。

Fessサイトのデザイン変更

fess.codelibs.orgのサイトですが、Fessの公開以降、大した見た目の変更もせず、Sphinxが適用しているデザインをほぼそのまま使ってきました。見た目の変更は、何年か前に表示幅を広げるくらいな調整をしたくらいです。そのうち、デザインを変更をしたいなぁーと思い、時間が過ぎてしまっていましたが、このたび、見た目の変更に取り組むことにしました。

とはいえ、このサイトはHTML以外にもPDFを生成する必要もあるため、Sphinx以外の仕組みに移行するのはちょっと厳しい状況にあります…。あとは、Fessの管理画面からオンラインヘルプでサイトの情報を参照するようにしているので、URLの構造を変えるのも難しい感じです。なので、Sphinxは引き続き利用して、デザインを変える必要があります。

見た目の方は別途調達して、それをSphinxのテンプレートとして、反映していくことになります。Sphinxは自由にタグレベルで簡単に変えられるのかと思ったら、そうではなさそうな感じでした…。TOCの表示とかを変えたかったのですが、Pythonレベルでハードコードされており、テンプレートレベルではどうすることもできなそうな雰囲気…。(私のSphinx力が足りないだけの可能性もあるが…)という感じで、これだけのために時間を使ってはいられないので、生成されたHTMLを正規表現で書き換える力技で乗り切ることにしました。

という感じで、ざっくりとはデザイン変更ができた感じです。まだ、英語のトップページがなかったり、細かいところで改善したほうが良いところがいろいろとある感じではありますが、時間があるときにちょこちょこ改善していこうかなと思っています。そんなか感じで、気長に見ていただければと…。