OpenSearch対応

FessとOpenSearch 1.1で動くようにしようと思い、Elasticsearchのプラグインたちを移行し始める。ただ、Elasticsearchプラグインたちは7.15系になってしまっているので、Fesenからコピーして作ることにしてみた。

analysis-fess, analysis-extension, minhash, configsyncの4つのプラグインを移植すればよいのだが、簡単にできるかと思いきや、minhashだけがそこそこ修正が必要になってしまった…。理由は、最新のElasticsearchでは独自に作ったフィールドでも簡単にcollapse対応ができるのだが、OpenSearchのはKeywordFiledTypeとNumberFiledTypeの2択になっており、FieldMapperで独自のFieldTypeを使うとcollapseできない…。なので、MinhashFieldMapperで独自のFieldTypeを定義せずに、KeywordFieldTypeを使うように書き換えたりする必要があった…。

それ以外は、OpenSearch自体がMavenセントラルにJarファイルを置いてくれているので、簡単に移植することができた。とはいえ、ログの出力まわりが期待と異なる動きをしているので、今後調査をしていく必要がある気がしている。現状、deprecationログが結構出てしまうので、

curl -X PUT "localhost:9200/_cluster/settings?flat_settings=true&pretty" -H 'Content-Type: application/json' -d'
{
    "transient" : {
        "logger.org.opensearch.deprecation": "ERROR"
    }
}'

を実行して止めるとかしたほうが良いかもしれない…。

そんな感じではありますが、このdocker-composeを使えば利用することができます。

Fess 13.15.0のリリース

Fess 13.15.0をリリースしました。特に大きな修正はなく、微調整な感じにはなりますが、変更点は以下な感じです。

#2594はzshの環境とかだったりすると、うまく動かないケースがあるようなので、使うシェルを指定するようにしました。

#2597はメンテナンスメージで再インデクシングを実行すると、負荷などによって、reindexが失敗する場合があるようなので、CPU数が少ない場合には低速で再インデクシングを実行するようにしました。

#2598は診断用のログレポートにいくつかの情報が含まれない状態になっていたので、修正しました。

という感じで、大きな変更とかはありませんが、何かあれば、フォーラムに投げてください。

Fess 13.14.0のリリース

Fess 13.14.0をリリースしました。Fess自体というよりはプラグイン周りなどの周辺物にいろいろと変更を入れた気がします。今回はインデックスマッピングを変更しているので、アップグレードした場合は、メンテンナンス画面から再インデクシングが必須になります。(再インデクシングしないでも、利用できる気はしますが…)

主な変更点を上げておきます。

#2590はminhashの処理ロジックの変更になりますが、今回はこれ関連の変更が大きかった気がします。elasticsearch-minhashプラグインを利用して、類似検索結果のまとめとかを実現していますが、このプラグインがelasticsearchの変更にいろいろと影響を受け、メンテ難易度が高い実装になっていたので、この機会にシンプルな処理になるようにリファクタリングしました。それに合わせて、Fessのインデックスマッピングも見直しています。それに合わせて、不要なフィールドとかも削除しました。

#2589は、Fessが利用している組み込みElasticsearchであるFesenのプラグインをメンテしやすいように、リファクタリングしました。

#2588は、設定を変えないと、Java 16上で開発ができないので、変更しました。開発以外では関係がない話だと思います。

という感じで、メンテがしやすいように整理した感じのリリースになります。何かあれば、フォーラムに投げてください。