Fess 14へのアップグレード

Elasticsearch 8ももうすぐリリースされるので、それに合わせて、Fess 14もリリースしていく予定で進めています。気持ち的には、今までどおりにElasticsearchのリリースと共にバージョンを上げていこうとは思っていますが、Fess 14では、Elasticsearch 7.x, Elasticsearch 8.x, OpenSearch 1.xが利用できるようになると思うので、Elasticsearchとの結びつきはより弱くなると思います。

Fess 13からのアップグレードをどうするかも考えていく必要がありますが、一番安全な方法は設定ファイルをバックアップして、新環境にリストアして、再クロールする、のが良いと考えています。なので、

1) Fess 13でfess_basic_config.bulkとsystem.propertiesをバックアップする
2) 新環境のFess 14にリストアする
3) クロールを開始して、インデックス作成

みたいな感じがクリーンな感じのアップグレードになると思います。

とはいえ、既存のインデックスに入っているものをどうしても再利用したい、みたいな場合は、管理画面のアップグレードから13系からのアップグレードを実行して、データ移行を行う感じになると思います。なので、

1) バージョンを上げてFess 14を起動する
(たとえば、docker-composeで指定しているバージョンをFess 14に変える)
2) 管理画面のアップグレードで13系からのバージョンアップを実行する
(古いインデックスから設定をコピーされる)
3) 管理画面のダッシュボードで.で始まる不要なインデックスを削除する

みたいな感じになると思います。Fess 14では設定情報を保存しているインデックス名にドットを使わないので、データを移行する必要があるので、上記のような方法でのデータ移行が必要になります。

Fesen HttpClient

Fess 14では、Elasticsearch 7.x, 8.xとOpenSearch 1.xをサポートする予定なので、これらへのアクセスを吸収してくれるようなクライアントが必要だったので、Fesen HttpClientをリファクタリングして、使えるようにしました。FesenはもともとElasticsearch 7.10をフォークして、Fessで利用していたものだけど、FesenをElasticsearch 8対応するのがつらすぎるので、それは断念して、Fesenで利用していたHttpClientだけが生き残って、Elasticsearch/OpenSearch対応して使える状態になったみたいな感じです。Fesen HttpClientは現時点ではMaven Centralに置いていないのですが、Elasticsearch 8がリリースされたら、Fessでテストして、Maven Centralに置いておく予定です。まぁ、全部のAPIに対応しているわけではなく、Fessで利用しているものが使える感じなものです。FessはいろいろなAPIを呼んでいるので、だいたいのAPIは利用できると思います。

という感じで、Fesen HttpClientができたので、Fess 14のElasticsearch 8対応に向けての大物は処理できたはず…。

株式会社コードリブズの2期目の振り返り

2期目の振り返りを書こうと思いつつ、既に時間が経ってしまった…。昨年の10月が年度末で、昨年11月から3期目が始まっています。なので、年度末処理は既に完了しています。

2期目は1期目ほど、話すこともない感じではありますが、簡単に振り返っておくと、

まず、法人としてのやること的なことは、一年回せはイベント的なことはだいたい把握しているので、大きな問題もなく、税理士さんの指示に従って、処理とかすれば完了できました。反省があるとするなら、予算の立て方が甘かったので、年度末になって、いろいろと考えなきゃならないのでつらいな…というのを体感しました。なので、今期は予算周りを改善して進めてます。

仕事的なことは、前期と同様に地道にやっていった感じですが、それ以外では、2期目で新たなプロダクトを作ろう!という感じで進めて、周りの方にもいろいろと協力をしてもらいながら、Recotemというレコメンドサーバーのプロダクトを作ることができました。なので、一応は、計画していたことを達成はできたかなと。

という感じで、1期目ほど、大した話はないですが、今期はRecotemの普及にも力を入れて活動していこうと思います。