検索インフラストラクチャのアップグレード
Liferay をアップグレードする際に、Elasticsearch のアップグレード が必要かどうか を検討してください。 アップグレードの正確な手順は、既存の検索エンジンのインストールと Liferay のバージョンによって異なりますが、まずは既存のインデックスをバックアップすることから始める必要があります 。
-
Liferay DXP 2025.Q4以前のバージョンからLiferay DXP 2026.Q1以降のバージョンにアップグレードする場合は、追加の手順が必要です。 Liferay DXP 2026.Q1+ の検索アップグレードについては、 を参照してください。
-
検索エンジン互換性マトリックスを参照してください。 可能な限り、サポートされている最新のElasticsearchバージョンを使用してください。
-
Liferay DXP 7.4およびすべてのサブスクリプションDXP四半期リリース(例:2025.Q1)では、Liferay Enterprise Search(LES)アプリケーションがバンドルされ、有効化されています。 追加のインストール手順は必要ありません。 詳細については、 Liferay Enterprise Search の有効化 を参照してください。
-
既にサポートされているElasticsearchバージョンを使用している場合は、更新せずに既存のElasticsearchインスタンスを引き続き使用できます。
-
Liferay DXP 7.4およびすべてのDXP四半期リリースでは、検索チューニング(同義語セットと結果ランキング)インデックスはデータベーステーブルによって支えられており、検索固有のアップグレード手順は必要ありません。 Liferay 7.2または7.3からアップグレードする場合、Liferayがアップグレード前のシステムと同じElasticsearchクラスタに接続されていると、検索チューニングインデックスデータはLiferayのデータベースに自動的に反映されます。 新しい Elasticsearch インスタンスをセットアップする場合は、 検索チューニング インデックスをバックアップおよび復元し、 Groovy スクリプト を実行して、インデックス データを新しいデータベース テーブルに手動でインポートする必要があります。
アップグレード手順
-
Elasticsearch をアップグレードします。 システムが少なくともサポートされているElasticsearchの最小バージョンであることを確認してください。 そうでない場合は、サポートされている最新のElasticsearchに移行してください。
Liferay DXP 7.4または四半期バージョンで、Liferay Enterprise Searchアプリケーションを使用している場合、Liferay DXPにバンドルされているため、インストール手順は必要ありません。 Liferay 7.2または7.3を使用している場合は、手順を読みながらアプリケーションをインストールしてください。
Liferay DXP 2026.Q1+ の検索機能のアップグレード
Elasticsearch 7 は、2026 年 1 月 15 日をもって サポート終了 の状態になりました。 Liferay DXP 2026.Q1+ では、Elasticsearch 8.19+ が必要です (詳細は 検索エンジン互換性マトリックス を参照してください)。 Elasticsearch 8.19以降は、ネイティブのElasticsearch 8コネクタを使用してサポートされます。 Elasticsearch 8 をサポートしていた以前のバージョンでは、Elasticsearch 7 コネクタを使用し、Elasticsearch の互換モードに依存していました。
Elasticsearch 8ネイティブコネクタを使用する場合、アップグレードには以下の要件があります。
-
Liferay をアップグレードする前に Elasticsearch を 8.19 以降にアップグレードしてください: Liferay DXP を 2026.Q1 以降にアップグレードする前に、Elastic stack を少なくともバージョン 8.19 にアップグレードし、Liferay コネクタ構成を調整する必要があります。 Liferay DXPは、互換性のないElasticsearchバージョンでは起動できません。 詳細については、 Elasticsearch 8 へのアップグレード を参照してください。
警告既存の Liferay DXP インストールを新しい空の Elasticsearch 8.19 クラスターに接続すると、Liferay のインデックスを再構築しても、アプリケーション駆動型のインデックス (ワークフロー メトリクス インデックスなど) の一部が再作成されません。 代わりに、Elasticsearchのアップグレードに関する推奨手順(ローリング再起動またはクラスタの完全再起動)のいずれかに従って、すべてのインデックスが新しいElasticsearchクラスタに転送されるようにしてください。
-
設定ファイル名の更新: システム設定の Elasticsearch コネクタ設定エントリとデプロイ可能な
.configファイルの名前が変更されます。 これらの設定をLiferay DXPデプロイメントで調整してから、ファイルを[Liferay-Home]/configsに追加またはマウントしてください。 Liferay DXPとElasticsearch 8.19を既に実行している場合、または同じ設定を継続する場合でも、この手順は必須です。旧コネクタ構成ファイル名(2025.Q4以前):
-
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config -
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConnectionConfiguration-<connectionId>.config
新しいコネクタ構成ファイル名(2026.Q1以降):
-
com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config -
com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConnectionConfiguration-<connectionId>.config
アップグレード前のシステムでシステム設定(Elasticsearch 7 設定エントリ)で Elasticsearch を設定していた場合は、まず 設定ファイルをエクスポートできます。
.configファイルを入手したら、名前を変更してプロパティを確認してください。 それらが最新のものであり、お使いの環境に適合していることを確認してください。 Elasticsearch Connector 構成リファレンス ガイドを参照してください。 -
-
カスタム Java クエリのテスト: Elasticsearch 7 から 8 に移行する場合、API の変更が予想されます。 LiferayのJava検索APIまたは低レベル検索エンジンアダプタAPIを使用しているカスタムOSGiモジュールをすべて確認し、Elasticsearch 8クライアントAPIとの互換性のために調整が必要かどうかを判断します。
-
テスト検索ブループリント: カスタムクエリ要素を使用する場合は、Elasticsearch クエリ要素または高度なブループリント構成 (集計、ハイライト、ソートなど) を貼り付けて、新しいメジャー Elasticsearch バージョンにアップグレードした後にテストしてください。 Elasticsearch リリース ノートと破壊的変更に関するドキュメント を参照してください。
Liferay 7.2および7.3でのLiferay Enterprise Searchのアップグレード
LESとそのアプリケーションはLiferay 7.4以降にバンドルされているため、これらの手順はLiferay 7.2または7.3にアップグレードする場合にのみ必要です。 基本的なアップグレード手順に従い、その後、以下のオプションの手順に従ってください。
-
現在 Kibana とモニタリング を使用している場合は、Elasticsearch のバージョンと一致する Kibana のバージョンをインストールしてください。
-
お使いのセットアップとバージョンに適したLESアプリケーションをインストールし、設定します。 詳細については、 LES互換性マトリックス を参照してください。
アップグレードされた検索エクスペリエンスをテストする
アップグレードされた検索エクスペリエンスを手動でテストして、依存する機能が期待どおりに機能することを確認します。 何かが機能しない、または予想と異なる動作をする場合は、 破壊的変更に関するドキュメントを確認してください。
LESアプリケーションはLiferay 7.2以降に名称を変更しました。
LESサブスクライバー
これらのLESアプリは、7.3のライフサイクルにおいて、その機能をより反映させ、LESアプリであることを強調するために名称が変更されました。
| 機能 | 旧アプリ名 | 新アプリ名 | 7.2設定ファイル | 7.3以降の設定ファイル |
|---|---|---|---|---|
| Elasticsearchクラスターのモニタリング | Liferay Connector to X-Pack Monitoring [Elastic Stack 6.x] (英語) | Liferay Enterprise Search Monitoring | com.liferay.portal.search.elasticsearch6.xpack.monitoring.web.internal.configuration.XPackMonitoringConfiguration.config | com.liferay.portal.search.elasticsearch.monitoring.web.internal.configuration.MonitoringConfiguration.config |
| Elasticsearchクラスターの保護 | Liferay Connector to X-Pack Security [Elastic Stack 6.x]を使用しています。 | Liferay Enterprise Search Security | アクションは必要ありません。このアプリはDXP 7.4では使用できません。 その機能はElasticsearchコネクタに統合されています。 | |
| 機械学習を使用した検索アルゴリズムの最適化 | Liferay Connector to Elasticsearch Learning to Rank | Liferay Enterprise Search Learning to Rank | 変更なし。 |
Liferay 7.3以降では、ウィジェット名と設定名は同じです。
Liferay 7.2 からアップグレードする場合、アプリと構成の名前を変更すると、このようなアップグレードの影響があります。
-
LESモニタリングウィジェットは、Elasticsearch Monitoringに名前が変更されました。 起動時に、モジュールのアップグレード手順が実行され、Liferay Enterprise Search Monitoringがデプロイされたときにアプリの名前が変更されます。 アクションは必要ありません。
-
コンフィギュレーションファイル名が
com.liferay.portal.search.elasticsearch6.xpack.monitoring.web.internal.configuration.XPackMonitoringConfiguration.configからcom.liferay.portal.search.elasticsearch.monitoring.web.internal.configuration.MonitoringConfigurationに変更されました。 プロパティは以前と同じです。 ポータルの起動中に、モジュールのアップグレード手順が実行され、構成の名前が変更されます。 アクションは必要ありません。 -
モニタリングウィジェットへのKibanaベースパスが変更されました。
kibana.ymlで元の設定を変更する必要があります。server.basePath: "/o/portal-search-elasticsearch-xpack-monitoring/xpack-monitoring-proxy"宛先
server.basePath: "/o/portal-search-elasticsearch-monitoring/monitoring-proxy"
7.4および四半期リリースにおける検索チューニングインデックスのインポート
Elasticsearchクラスタには以下のLiferay DXP検索の調整のインデックスがあります。
liferay-[companyId]-search-tuning-rankingsliferay-[companyId]-search-tuning-synonyms
アップグレード前のシステムで検索の調整機能を使用していたが、アップグレード後のクラスタに検索の調整インデックス文書が存在しない場合、まず 検索の調整インデックス をバックアップしてアップグレード前のクラスタからアップグレード後のクラスタに復元し、次にGroovyスクリプトを実行してインデックスデータを新しいデータベーステーブルに手動でインポートする必要があります。 アップグレード前のクラスタをアップグレードするのではなく、新しいElasticsearchクラスタに接続する場合に発生することがあります。
Groovyインポートスクリプトを実行するには、
-
スクリプトコンソールに移動します。 コントロールパネルの「サーバー管理」から「スクリプト」タブに移動します。
-
以下のスクリプトを実行し、結果ランキングデータをそのデータベーステーブルにインポートします。
import com.liferay.portal.kernel.module.util.SystemBundleUtil import com.liferay.portal.kernel.util.PortalUtil import com.liferay.portal.search.tuning.rankings.storage.RankingsDatabaseImporter import org.osgi.framework.BundleContext import org.osgi.util.tracker.ServiceTracker BundleContext bundleContext = SystemBundleUtil.getBundleContext(); ServiceTracker rankingsDatabaseImporterTracker = new ServiceTracker( bundleContext, RankingsDatabaseImporter.class.getName(), null) try { rankingsDatabaseImporterTracker.open() RankingsDatabaseImporter rankingsDatabaseImporter = (RankingsDatabaseImporter) rankingsDatabaseImporterTracker.getService() for (long companyId : PortalUtil.getCompanyIds()) { rankingsDatabaseImporter.populateDatabase(companyId); } } finally { rankingsDatabaseImporterTracker.close() } -
以下のスクリプトを実行し、同義語セットのデータをそのデータベーステーブルにインポートします。
import com.liferay.portal.kernel.module.util.SystemBundleUtil import com.liferay.portal.kernel.util.PortalUtil import com.liferay.portal.search.tuning.synonyms.storage.SynonymSetsDatabaseImporter; import org.osgi.framework.BundleContext import org.osgi.util.tracker.ServiceTracker BundleContext bundleContext = SystemBundleUtil.getBundleContext(); ServiceTracker synonymSetsDatabaseImporterTracker = new ServiceTracker( bundleContext, SynonymSetsDatabaseImporter.class.getName(), null) try { synonymSetsDatabaseImporterTracker.open() SynonymSetsDatabaseImporter synonymSetsDatabaseImporter = (SynonymSetsDatabaseImporter) synonymSetsDatabaseImporterTracker.getService() for (long companyId : PortalUtil.getCompanyIds()) { synonymSetsDatabaseImporter.populateDatabase(companyId); } } finally { synonymSetsDatabaseImporterTracker.close() } -
同義語セットと結果ランキングをテストして、すべてが期待通りに動作していることを確認してください。