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対応に向けての大物は処理できたはず…。

Fess 14に向けて

Elasticsearch 8のリリースも近づいているので、それに対応したFess 14をどうしようかと考え始めている。作業もあれこれと始めているのだけど、Elasticsearch 8になると、パスから_docが消えるので、影響が結構大きいなと考えている。さらに、これにまじめに対応しようとすると、Fesenをかなり修正しないといけないのもあり、ちょっとそこまで時間を使うことができないかなと…。とはいえ、Elasticsearch 8にも対応していかないといけないし、みたいな悩ましい状況です。

そこで、いろいろと考えたところの現状は、
・Elasticsearch 7.10からフォークしたFesenをメンテしていくのは工数的につらそう
・同じくElasticsearch 7.10からフォークしていたOpenSearchは結構頑張っていそう
・Fessとしては、Elasticsearch 7&8とOpenSearchのサポートをしていきたい
というのがあるので、方針としては
・Fess 14.xはElasticsearch 8.xに合わせてリリースしていく
・Fessの内部コードはFesenからOpenSearchに変更する
・Elasticsearch7&8, OpenSearchの差分はfesen-httpclientで吸収する
という感じでいこうと考えています。なので、今までどおり、Elasticsearchのリリースに合わせて、Fessもリリースはしていく予定で考えています。

そんな感じで、zip版でお試し実行用の組み込み版はOpenSearchに変わることになります。一応、githubの最新ソースコードはOpenSearchに変わっています。まぁ、この辺は見た目にはわからないことなので、普通に使っている分には気づくこともないことですが、今後は、OpenSearchとの連携とかも強化されていくはず…。