Fess用のEmbedding環境の準備

そろそろFessでも、セマンティックな検索ができるか?というところに挑戦していくために準備を始める。まずは、テキストを渡したら、ベクトルを返してくれるようなサーバーを用意しないことには始まらないなと思い、実験していくたたき台として、fess-text-vectorizerを作ってみた。Fessは多言語対応しているので、一応、言語を渡して、contentにテキストを渡せば、ベクトルを返してくれる的な感じ。Transformerを使って、ざっくり作ってみただけなので、試しながら変わっていく感じになるとは思っている。

次は、fess-ingestでfess-text-vectorizerを呼び出すようなプラグインを書く感じかなと。その次にはFessのQueryHelperをいじって、検索クエリーを調整できるようにするはず。

という感じで、とりあえず、一歩前進した感じではある。

FessでOpenSearchを使う手順

Fess 14.0のインストールガイドを更新して、OpenSearchを使うインストール方法も追記しておいた。なので、Elasticsearch 8(zip/tar.gz/rpm/deb/docker)、OpenSearch 1.2(tar.gz/docker)でのインストール方法があります。まぁ、Elasticsearch 7でも使えるのだけど、そこまで書いておくとメンテがめんどくさくなるので、最新だけを書いてある感じです。英語の方も更新しないといけないけど、そのうち、時間があるときに対応かなと…。

Fess 14.0.0のリリース

Fess 14.0.0をリリースしました。

現時点では、インストールガイドはElasticsearch 8系の説明しかないですが、Elasticsearch 7やOpenSearchの情報も整理していくと思います。商用提供では、しばらくはFess 14 & Elasticsearch 7の組み合わせてで提供していくと思いますし。そんな感じですが、fess自体に入れたIssuesたちを見ていくと、

#2603はコードを整理しただけです。Fess 14からJava 17ベースに変わっているので、それに合わせてEclipseにコードを整理してもらいました(Eclipseにコードの自動整理をしてもらった感じ)。

#2606#2615#2616は、Fess 14ではドットで始まるインデックス名を使わないようにしているので、それに関する変更です。

#2617#2620#2624#2625はアップグレードなどのメンテ系の更新作業になります。

#2614#2623#2628は、今までFess内部の検索エンジンのコードにFesenを使っていたものをOpenSearchに置き換えました。まぁ、Fessの内部の検索エンジンのコードが何かは重要ではないのですが…。重要なのは、外部の検索エンジンへのアクセスにはFesen HttpClientを利用することで、FessがElasticsearchやOpenSearchなどの検索エンジンサーバーを選択して利用することができるようになった点でしょう。Fesen HttpClientが差分を吸収してくれる感じです。

#2618はTikaのバージョンを2.2系に上げました。Tikaは2系になって、Fessからみると依存関係が難しくなった気もしますが…。

#2619はサムネイル生成でコマンド呼び出しで生成する場合に、呼び出すコマンドの処理を整理した感じです。出力するログの整理等も含めて。

#2622はクロール時のファイル名取得処理において、Webだと#とかのあとは捨てればよいのですが、ファイルシステム系ではファイル名に#とかが使われている場合もあるので、ファイル名が正しく取得できるようにしました。

#2626は、Elasticsearch 8になり、ElasticsearchへのアクセスがデフォルトでTLSを有効にしているので、Fessでもそれに対応できるようにしました。つまり、https://localhost:9200/のときにもFessから利用できるようになりました。

#2627はクロール時にFessからElasticsearch/OpenSearchにアクセスするスレッド数を指定できるようにしました。

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