Elasticsearch 7へのアップグレード
7.1および7.2
Liferay の Elasticsearch 7.17.x サーバーへの接続は、 Elasticsearch 7.17 のサポート終了により非推奨となりました。 非推奨の Elasticsearch に接続すると、ログと検索管理パネルに警告が表示されます。
WARN [main][ElasticsearchSearchEngine:382] Connecting to Elasticsearch 7 nodes is now deprecated. Upgrade the Elasticsearch nodes corresponding to the following connection IDs: __REMOTE__.
Liferay 7.3 および 7.4 は、Elasticsearch 7 をすぐにサポートします。 Liferay インストールで利用可能な最新の検索エンジン バージョンを見つけるには、 検索エンジン互換性マトリックスを参照してください。
Liferay 7.2 では、Elasticsearch 7 は Liferay Connector to Elasticsearch 7 (バージョン 3.x) を介してサポートされます。 Liferay 7.3以降へのアップグレード、または既存の7.2検索エンジンをElasticsearch 7に移行する場合、Elasticsearchサーバーをアップグレードする必要があります。 新しい Liferay 7.2 システムをセットアップするには、Elasticsearch 7 をインストールし、 インストール ガイドに従ってください。
Elasticsearchをアップグレードする前に、既存のデータをバックアップしてください。 アップグレード中またはアップグレード後に何か問題が発生した場合は、破損していないインデックスのスナップショットを使用して以前のバージョンにロールバックしてください。 Elasticsearch のバックアップの手順に従います。
既存のElasticsearchサーバー(またはクラスター)をElasticsearch 7にアップグレードするには、
-
検索チューニング (同義語セットと結果ランキング) のアプリケーション固有のインデックスをバックアップします。
-
X-Pack Securityを使用している場合は、有効になっていることを確認してください。
xpack.security.enabled: trueセキュリティ構成の詳細については、 Elasticsearch のセキュリティ保護 を参照してください。
-
[7.2 のみ] バンドルされている Liferay Connector to Elasticsearch 6 をブラックリストに登録し 、 インストールし Elasticsearch 7 へのコネクタをインストールします。
-
Connector to Elasticsearch 7を設定してElasticsearchに接続します。
-
Liferay を再起動し、すべての検索インデックスとスペルチェックインデックスを再作成します。
-
スナップショットから検索調整インデックスを復元します。 以前にこれらの機能を使用していた場合は、これらのインデックスにデータが保存されている可能性があります。
-
検索調整エントリが引き継がれていることを確認します。
Elasticsearchのアップグレード
ローリング再起動対応バージョン (6.8.x) を使用している場合は、Elasticsearch クラスターをアップグレードするために ローリング アップグレード を実行することをお勧めします。 それ以外の場合は、 完全なクラスター再起動アップグレード ガイドに従ってください。
新しい Elasticsearch サーバーをインストールし、アップグレード前のデータをインデックスする場合は、Liferay データベースがアップグレードされたら、UI から 再インデックス をトリガーすることで、ほとんどの Liferay インデックスを復元できます。 ただし、検索チューニング (結果のランキングと同義語) インデックスと、データベース ストレージによってバックアップされていないカスタム インデックスは、アップグレード前のインデックスの スナップショットから復元する必要があります。
Elasticsearch 6のブラックリストへの登録
これは、Liferay 7.2を実行している場合にのみ必要です。
- 以下の設定ファイルを作成します
com.liferay.portal.bundle.blacklist.internal.BundleBlacklistConfiguration.config
- 以下のコンテンツを指定します
blacklistBundleSymbolicNames=[ \
"com.liferay.portal.search.elasticsearch6.api", \
"com.liferay.portal.search.elasticsearch6.impl", \
"com.liferay.portal.search.elasticsearch6.spi", \
"com.liferay.portal.search.elasticsearch6.xpack.security.impl", \
"Liferay Connector to X-Pack Security [Elastic Stack 6.x] - Impl", \
"Liferay Enterprise Search Security - Impl" \
]
- ファイルをサーバーの
deployフォルダにコピーしてデプロイします。
Liferayを再起動してインデックスを再作成する
Liferay が Elasticsearch クラスターに接続されたら、Liferay を再起動し、該当するインデックスを新しい Elasticsearch インストールに再インデックスします。
-
Liferayを再起動します。
-
会社、システム、スペルチェックのインデックスを再作成します。 グローバル メニュー (
) から、 コントロール パネル → 構成 → 検索に移動します。 「すべての検索インデックス」 エントリの 「再インデックス」 をクリックします。 -
ワークフロー メトリクス インデックスを再インデックスします。グローバル メニュー (
) から、 アプリケーション → ワークフロー—メトリクスに移動します。 設定メニュー(
)を開き、 「すべて再インデックス」をクリックします。 各仮想インスタンスについて、この作業を繰り返します。
これにより、Liferayデータベースに保存されているデータから作成されたインデックスが復元されます。 プライマリ ストレージとして使用されているインデックスを復元するには、「 Elasticsearch のバックアップ」を参照してください。
Liferay 7.2:Elasticsearch 6への復帰
Liferay 7.2を使用していて、Elasticsearch 7へのアップグレード中に回復不能な障害が発生した場合は、Elasticsearch 6にロールバックして再グループ化できます。
Elasticsearch 6と7は現在2つの別個のインストールであるため、この手順にはいくつかのステップが必要です。
-
Liferay Connector to Elasticsearch 7を停止します。
-
Elasticsearch 7を停止し、Elasticsearch 6
elasticsearch.ymlとコネクタアプリが同じポート(デフォルトでは9200)を使用するように構成されていることを確認します。 -
インストール先の
osgiフォルダからElasticsearch 6のブラックリスト設定ファイルを削除します。 -
Elasticsearchサーバーを起動してから、Liferay Connector to Elasticsearch 6を再起動します。
アップグレードが完了したら、Liferay バージョンで利用できる 新しい検索機能を確認してください。。