Documentation

Elasticsearchへの接続

Elasticsearchを設定した後、Liferay Connector to Elasticsearchを使用してLiferayをElasticsearchに接続する必要があります。 接続の手順は、設定している コネクタ によって異なります。

  • Liferay 7.3:Liferay Connector to Elasticsearchは、Liferay DXP 7.3およびCE 7.3 GA4以降に含まれています。 また、Liferay マーケットプレイスでも入手可能です。

  • Liferay 7.2:Liferay Connector to ElasticsearchはLiferay マーケットプレイスで入手できます。

ここでは、インストールや設定手順の主な違いについて説明します。

重要

接続を設定する前に、各Liferayサーバーノードを停止します。

Liferay 7.2を使用している場合は、 Liferay 7.2:Elasticsearch 7コネクタのインストール にスキップしてください。

コネクタの設定

Elasticsearch 7コネクタは、com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.configという名前の設定ファイルを介してLiferay 7.3用に設定されます。

ファイルで構成を指定したら、[Liferay Home]/osgi/configs/フォルダに配置してデプロイできます。

Dockerの場合、

docker cp ~/path/to/com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config [container]:/mnt/liferay/files

または、ユーザーインターフェイスでコネクタを設定することもできます。 グローバルメニュー(Global Menu)で、[コントロールパネル]→ [システム設定]を開き、 [検索] のカテゴリーを開きます。 このエントリはElasticsearch 7と呼ばれます。

Liferay 7.2では、コントロールパネルはプロダクトメニュー(Product Menu)にあります。

7.3コネクタのシンプル設定では、本番環境モード(productionModeEnabled="true")が有効になり、各Elasticsearchノード(networkHostAddresses=["http://es-node:9200"])へのURLが設定されます。

  1. 次の設定ファイルを作成します。

    com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
    
  2. .configファイルで設定プロパティを指定します。 コメントアウトされたセキュリティプロパティを含む例を次に示します(暗号化が有効になっている場合は httpsネットワークホストアドレスを使用する必要があることに注意してください)。

    # In CE/DXP7.3, productionModeEnabled replaces operationMode (deprecated):
    productionModeEnabled=B"true"
    networkHostAddresses=["http://es-node1:9200","http://es-node3:9201","http://es-node3:9202"]
    # In CE/DXP 7.3 the security settings are included in the ElasticsearchConfiguration
    # In CE/DXP 7.2 the security settings go in com.liferay.portal.search.elasticsearch7.configuration.XPackSecurityConfiguration.config
    # Authentication
    #authenticationEnabled=B"true"
    #username="elastic"
    #password="liferay"
    
    # TLS/SSL
    #networkHostAddresses=["https://es-node1:9200","https://es-node3:9201","https://es-node3:9202"]
    #httpSSLEnabled=B"true"
    #truststoreType="pkcs12"
    #trustStorePath="/PATH/TO/elastic-nodes.p12"
    #trustStorePassword="liferay"
    
    # Highly recommended for all non-prodcution usage (e.g., practice, tests, diagnostics):
    #logExceptionsOnly="false"
    
  3. .configファイルを[Liferay Home]/osgi/configsフォルダに配置します。

ちなみに

コネクタには多くの設定項目があります。 それぞれの定義については、 Elasticsearch コネクターの設定 をご参照ください。 ほとんどの設定は、 Elasticsearch で利用可能な設定に対応しています。

Elasticsearchサーバーを名前で参照するには、各Elasticsearchサーバー名をDNSまたはLiferayサーバーの/etc/hosts ファイル内のIPアドレスにマップします。

ちなみに

ネットワークホストアドレスのフォーマットは、//[host name]:[port] です。 LiferayのDockerコンテナを使用している場合、docker runコマンドで--add-host [host name]:[IP address]オプションを使用して、ホスト名を各ElasticsearchサーバのIPアドレスにマッピングすることができます。 ポートは、Elasticsearchコンテナのdocker runコマンドで、-p 1234:5678オプションの最初の値として定義されます(ここでは1234です)。 HTTPSが有効になっていないローカルテスト環境を実行している場合は、すべてのアドレスが http://localhost:port` になります。 cDockerのドキュメント をご覧ください。

Liferay 7.2:Elasticsearch 7コネクタのインストール

Elasticsearch 6コネクタを停止する

Liferay 7.2では、バンドルされているコネクタアプリケーションとAPIはElasticsearch 6用です。 Elasticsearch 7コネクタをインストールする前に、これらを無効にする必要があります。

  1. 以下のようなファイルを作成します。

    com.liferay.portal.bundle.blacklist.internal.BundleBlacklistConfiguration.config
    
  2. 以下のコンテンツをファイルに追加します。

    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.lpkg" \
    ]
    
  3. ファイルを[Liferay Home]/osgi/configsフォルダに配置します。

    Liferayサーバーを起動すると(まだ起動していない場合)、Liferayはこのファイルを読み取り、宣言されたバンドルの起動をブロックします。

    ちなみに

    Docker: eray Homeやその他のLiferayインストールの重要なフォルダは、/mnt/liferay [にあるDockerコンテナにアクセスして、以下のように説明されます。](../../.../installation-and-upgrades/installing-liferay/using-liferay-docker-images/container-lifecycle-and-api.html#api) . docker cp /path/to/local/file [container_name]:/mnt/liferay/files/osgi/configsを使って、コンフィグレーションファイルをコンテナ内に配置することができます。 その後、docker cpを使ってLiferay Connector to Elasticsearch 7のLPKGファイルをデプロイすることができます。

Elasticsearch 7コネクタのインストール

  1. Liferay Connector to Elasticsearch 7をダウンロードします。

    コネクタがElasticsearchのバージョンに対応していることを確認してください。 コネクタアプリケーションが新しいバージョン(7.9.xなど)をサポートしている場合でも、コネクタのクライアントライブラリが古いバージョンのElasticsearch(7.3など)用である可能性があることに注意してください。 Liferayは、Elasticsearchのマイナーバージョンごとにコネクタをテストし、必要に応じて新しいアップデートコネクタバージョンを作成します。 コネクタの互換性については、 検索エンジンの互換性マトリックス を参照してください。

  2. LPKGをフォルダに配置してインストールします。

    [Liferay Home]/deploy
    

    Dockerの場合、

    docker cp ~/path/to/Liferay\ Connector\ to\ Elasticsearch.lpkg [container]:/mnt/liferay/deploy
    

    Liferayサーバーを起動すると(まだ起動していない場合)、LiferayはLPKGをデプロイします。

これで、コネクタを設定する準備が整いました。

Liferay7.2用のコネクタを設定する

  1. 次のElasticsearch設定ファイルを作成します。

    com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
    
  2. .configファイルで設定プロパティを指定します。 ここでは、リモート動作モードを有効にし、各Elasticsearchノードのトランスポートアドレスを設定し、設定している接続を識別する例を示します。

    # com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
    operationMode="REMOTE"
    transportAddresses="ip.of.elasticsearch.node:9300"
    # Highly recommended for all non-production usage (e.g., practice, tests, diagnostics):
    #logExceptionsOnly="false"
    
  3. .configファイルを[Liferay Home]/osgi/configsフォルダに配置して、設定をデプロイします。

これでLiferayを開始する準備が整いました。

Liferayを開始してインデックスを再作成する

Elasticsearchがインストールされて動作している場合は、Liferayを起動します。 コントロールパネルで[設定→ 検索機能]に移動し、Elasticsearchの接続がアクティブになっていることを確認します。

有効な接続が[検索機能]管理パネルに表示されます。

検索インデックスとスペルチェックインデックスのインデックスを再作成します。 コントロールパネルの → 構成 → 検索の[インデックスアクション]タブで、この2つのアクションを起動します。

Liferay 7.3では、[Workflow Metrics Settings]ウィンドウからワークフロー統計情報インデックスを再作成します。

  1. グローバルメニュー(Applications Menu)から[アプリケーション] → [ワークフローメトリクス]に移動します。

  2. アプリオプションメニュー(App Options)から [Settings] ウィンドウを開きます。

  3. すべてインデックスを再構築] をクリックします。 この操作をシステム内の各仮想インスタンスに対して繰り返します。

注釈

一次データの保存(データベースにバックアップされていないデータの保存)に使用されているElasticsearchインデックスがある場合は、snapshot and restore approach . Liferay独自の検索の調整インデックス(結果ランキングとSynyonyms用)は、プライマリーストレージのインデックスです。

これで、LiferayはリモートのElasticsearch 7インストールにコンテンツのインデックスを作成します。

利用可能なLiferay Elasticsearchコネクタ

バンドルされているElasticsearchへのコネクタが、インストールに最適であるとは限りません。 Elasticsearchとの通信に使用できるコネクタ間の違いを理解することが重要です。

| Liferay CE/DXPバージョン | 名前 | 利用可能性 | 通信プロトコル | セキュアな接続のサポート | 動作モード | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | ce 7.3 ga4, dxp 7.3 ga1 | Liferay (CE) コネクタ to Elasticsearch 7 | バンドル | HTTP | ✔ | Sidecar / Remote (Production)* | | CE 7.2、DXP 7.2 | Liferayコネクター(CE)とElasticsearch 6の連携 | バンドル | トランスポート | ✔\ ****(requires LES ) | エンベデッド/リモート | | CE 7.2、DXP 7.2 | Liferay Connector (CE) to Elasticsearch 7 (v3.x) | マーケットプレイス CE , DXP です。 | トランスポート | ✔ | エンベデッド/リモート |

\ **コネクタ設定の*動作モード( operationMode) 設定は非推奨になり、 **本番モードが有効(productionModeEnabled)に置き換えられました。

\ ** Liferay Enterprise Search Security アプリケーションを通して。

互換性のあるElasticsearchのバージョンや必要なパッチレベルなど、詳細な互換性情報については、 検索エンジン互換性マトリクス を参照してください。

次のステップ

LiferayがElasticsearchに接続されたので、Elasticsearchの使用を開始できます。 本番環境では、LiferayサーバーとElasticsearchサーバー間の通信を保護する必要があります。 詳しくは、 Elasticsearchの保護 を参照してください。