Upgrading Elasticsearch
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

検索インフラストラクチャのアップグレード

Liferay をアップグレードする際には、Elasticsearch のアップグレード が必要かどうかを検討してください。 アップグレードの具体的な手順は、既存の検索エンジンのインストールと Liferay のバージョンによって異なりますが、まずは 既存のインデックスをバックアップする必要があります。

  • 検索エンジン互換性マトリックスを参照してください。 可能な限り、サポートされている最新の 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 スクリプト を実行して、インデックス データを手動で新しいデータベース テーブルにインポートする必要があります。

アップグレード手順

  1. Elasticsearch をアップグレードします。 システムが少なくともサポートされている Elasticsearch の最小バージョンであることを確認してください。 そうでない場合は、 サポートされている最新の Elasticsearchに移行してください。

  2. LiferayをElasticsearchに接続しセキュリティを設定します。

  3. Liferayをアップグレードします。

  4. 検索インデックスとスペルチェック辞書を再インデックスします。

    ワークフローメトリックのインデックスを再作成することを忘れないでください。

  5. アップグレードしたシステムで検索エクスペリエンスをテストし 、すべてが期待どおりに動作することを確認します。

Liferay DXP 7.4 または四半期バージョンを使用しており、Liferay Enterprise Search アプリケーションを使用している場合は、Liferay DXP にバンドルされているため 、インストール手順は必要ありません。 Liferay 7.2または7.3を使用している場合は、手順を読みながらアプリケーションをインストールしてください。

Liferay 7.2および7.3でのLiferay Enterprise Searchのアップグレード

LES とそのアプリケーションは Liferay 7.4 以降にバンドルされているため、これらの手順は Liferay 7.2 または 7.3 にアップグレードする場合にのみ必要です。 基本的なアップグレード手順に従ってから、次のオプションの手順を実行します。

  1. 現在 Kibana と Monitoringを使用している場合は、Elasticsearch のバージョンと一致する Kibana のバージョンをインストールしてください。

  2. お使いのセットアップとバージョンに適した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 Monitoringcom.liferay.portal.search.elasticsearch6.xpack.monitoring.web.internal.configuration.XPackMonitoringConfiguration.configcom.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 RankLiferay Enterprise Search Learning to Rank変更なし。

ウィジェットと構成名は Liferay 7.3 以降では同一です。

Liferay 7.2 からアップグレードする場合、アプリと構成の名前を変更すると、このようなアップグレードの影響があります。

  1. LESモニタリングウィジェットは、Elasticsearch Monitoringに名前が変更されました。 起動時に、モジュールのアップグレード手順が実行され、Liferay Enterprise Search Monitoringがデプロイされたときにアプリの名前が変更されます。 アクションは必要ありません。

  2. コンフィギュレーションファイル名がcom.liferay.portal.search.elasticsearch6.xpack.monitoring.web.internal.configuration.XPackMonitoringConfiguration.configからcom.liferay.portal.search.elasticsearch.monitoring.web.internal.configuration.MonitoringConfigurationに変更されました。 プロパティは以前と同じです。 ポータルの起動中に、モジュールのアップグレード手順が実行され、構成の名前が変更されます。 アクションは必要ありません。

  3. モニタリングウィジェットへの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-rankings
  • liferay-[companyId]-search-tuning-synonyms

アップグレード前のシステムで検索の調整機能を使用していたが、アップグレード後のクラスタに検索の調整インデックス文書が存在しない場合、まず 検索の調整インデックス をバックアップしてアップグレード前のクラスタからアップグレード後のクラスタに復元し、次にGroovyスクリプトを実行してインデックスデータを新しいデータベーステーブルに手動でインポートする必要があります。 アップグレード前のクラスタをアップグレードするのではなく、新しいElasticsearchクラスタに接続する場合に発生することがあります。

Groovyインポートスクリプトを実行するには、

  1. スクリプトコンソールに移動します。 コントロール パネル → サーバー管理のスクリプト タブに移動します。

  2. 以下のスクリプトを実行し、結果ランキングデータをそのデータベーステーブルにインポートします。

    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()
    }
    
  3. 以下のスクリプトを実行し、同義語セットのデータをそのデータベーステーブルにインポートします。

    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()
    }
    
  4. 同義語セットと結果ランキングをテストして、すべてが期待通りに動作していることを確認してください。