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を使えば利用することができます。