Elasticsearchへの接続
Elasticsearch をセットアップした後、Liferay Connector to Elasticsearch を使用して Liferay に接続します。 接続の手順は、設定するコネクターによって異なります。 参考として、「 利用可能なLiferay Elasticsearchコネクタ 」を参照してください。
注目すべきインストールおよび構成手順の違いがここに表示されます。
-
Elasticsearch 7 システム設定エントリと対応する構成ファイルは、Elasticsearch 8 への接続を構成するためにも使用されます。
-
接続を設定する前に、各Liferayサーバーノードを停止します。
-
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.2 を使用している場合は、 Liferay 7.2: Elasticsearch 7 コネクタのインストールに進んでください。
コネクタの設定
Liferay 7.3 以降の Elasticsearch コネクタは、設定ファイルを使用して設定できます。
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
この同じファイルを使用して、Liferay 7.3 および 7.4 を Elasticsearch 7 または 8 に接続することもできます。 利用可能な Elasticsearch バージョンを確認するには、 検索エンジン互換性マトリックス を参照してください。
デプロイするには、 [Liferay Home]/osgi/configs/に配置します。
Dockerの場合、
docker cp ~/path/to/com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config [container]:/mnt/liferay/files
または、ユーザーインターフェイスでコネクタを設定することもできます。 グローバル メニュー (
) で、[コントロール パネル] → [システム設定] に移動し、[ 検索 ] カテゴリを開きます。 このエントリはElasticsearch 7と呼ばれます。
シンプルな Liferay 7.3+ コネクタ構成では、プロダクションモード(productionModeEnabled="true")が有効になり、各 Elasticsearch ノードへの URL が設定されます(networkHostAddresses=["http://es-node:9200"])。
-
次の設定ファイルを作成します。
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config -
.configファイルで設定プロパティを指定します。 以下は、 セキュリティ プロパティ がコメント アウトされた例です (暗号化を有効にする場合は、httpsネットワーク ホスト アドレスを使用する必要があることに注意してください)。# In CE/DXP 7.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" -
.configファイルを[Liferay Home]/osgi/configsフォルダに配置します。
コネクタには多くの設定項目があります。 定義については、 Elasticsearch コネクタ設定 を参照してください。 ほとんどの構成は、 Elasticsearchで使用可能な設定に対応しています。
Elasticsearchサーバーを名前で参照するには、各Elasticsearchサーバー名をDNSまたはLiferayサーバーの/etc/hosts ファイル内のIPアドレスにマップします。
ネットワークホストアドレスの形式は http[s]://[ホスト名]:[ポート]です。 Liferay Dockerコンテナを使用している場合は、 --add-host [ホスト名]:[IPアドレス] オプションを docker run コマンドで使用して、ホスト名を各ElasticsearchサーバーのIPアドレスにマッピングできます。 ポートは、Elasticsearch コンテナの docker run コマンドで、 -p 1234:5678 オプションの最初の値として定義されます (この場合は 1234 です)。 HTTPS を有効にせずにローカル テスト環境を実行している場合、すべてのアドレスは http://localhost:portになります。 詳細については、 Docker のドキュメント を参照してください。
Liferay 7.2:Elasticsearch 7コネクタのインストール
Elasticsearch 6コネクタを停止する
Liferay 7.2では、バンドルされているコネクタアプリケーションとAPIはElasticsearch 6用です。 Elasticsearch 7コネクタをインストールする前に、これらを無効にする必要があります。
-
以下のようなファイルを作成します。
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.lpkg" \ ] -
ファイルを
[Liferay Home]/osgi/configsフォルダに配置します。Liferayサーバーを起動すると(まだ起動していない場合)、Liferayはこのファイルを読み取り、宣言されたバンドルの起動をブロックします。
ヒントDocker:
Liferay Homeおよび Liferay インストールのその他の重要なフォルダは、/mnt/liferayにある Docker コンテナでアクセスされます。説明は こちらにあります。docker cp /path/to/local/file [container_name]:/mnt/liferay/files/osgi/configsを使用して、設定ファイルをコンテナ内に配置できます。 後で、docker cpを使用して、Liferay Connector を Elasticsearch 7 LPKG ファイルにデプロイできます。
### Elasticsearch 7コネクタのインストール
-
Liferay Connector to Elasticsearch 7をダウンロードします。
コネクタがElasticsearchのバージョンに対応していることを確認してください。 コネクタアプリケーションが新しいバージョン(7.18.0など)をサポートしている場合でも、コネクタのクライアントライブラリが古いバージョンのElasticsearch(7.17.1など)用である可能性があることに注意してください。 Liferayは、Elasticsearchのマイナーバージョンごとにコネクタをテストし、必要に応じて新しいアップデートコネクタバージョンを作成します。 いつものように、コネクタの互換性については、 検索エンジン互換性マトリックス を参照してください。
-
LPKG を以下のフォルダに配置してインストールします。
[Liferay Home]/deployDockerの場合、
docker cp ~/path/to/Liferay\ Connector\ to\ Elasticsearch.lpkg [container]:/mnt/liferay/deployLiferayサーバーを起動すると(まだ起動していない場合)、LiferayはLPKGをデプロイします。
これで、コネクタを設定する準備が整いました。
Liferay7.2用のコネクタを設定する
-
次のElasticsearch設定ファイルを作成します。
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config -
.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" -
.configファイルを[Liferay Home]/osgi/configsフォルダに配置して、設定をデプロイします。
これでLiferayを開始する準備が整いました。
Liferayを起動してインデックスを再作成する
Elasticsearch が インストールされ、実行中の場合は、Liferay を起動します。 コントロールパネルで、[設定] → [検索機能]に移動し、Elasticsearch接続が有効であることを確認します。

検索インデックスとスペルチェックインデックスを再インデックスします。 [コントロールパネル] → [設定] → [検索機能]の[アクションをインデックスする]タブで、これらのアクションの両方を呼び出します。
Liferay 7.3以降では、ワークフローメトリック設定ウィンドウから ワークフローメトリック インデックスを再インデックスします。
-
グローバル メニュー (
) から、アプリケーション → ワークフロー メトリックに移動します。 -
アプリのオプションメニュー (
) から 設定 ウィンドウを開きます。 -
「すべて再インデックス」をクリックします。 この操作をシステム内の各仮想インスタンスに対して繰り返します。
プライマリ データ ストレージ (データベースにバックアップされていないデータの保存) に Elasticsearch インデックスを使用する場合は、 スナップショットと復元のアプローチを使用して、そのデータを新しい Elasticsearch クラスターに取り込むことができます。 7.2と7.3では、Liferay独自の検索の調整インデックス(結果ランキングと同義語用)が、メインのストレージインデックスです。 7.4では、これらのインデックスはデータベーステーブルによってバックアップされています。
Liferay 7.4 U45+/GA45+ および Liferay DXP 7.3 U14+ では、拡張ログが有効になっているため、システムおよび会社のインデックスの再インデックスがいつ開始および終了したかを知ることができます。 例えば、
2023-01-09 20:44:17.730 INFO [liferay/background_task-2][ReindexPortalBackgroundTaskExecutor:57] Start reindexing company 0
2023-01-09 20:44:53.677 INFO [liferay/background_task-2][ReindexPortalBackgroundTaskExecutor:76] Finished reindexing company 0
2023-01-09 20:44:53.677 INFO [liferay/background_task-2][ReindexPortalBackgroundTaskExecutor:57] Start reindexing company 20097
2023-01-09 20:45:00.986 INFO [liferay/background_task-2][ReindexPortalBackgroundTaskExecutor:76] Finished reindexing company 20097
これで、Liferay はリモート Elasticsearch インストールにコンテンツをインデックスします。
利用可能なLiferay Elasticsearchコネクタ
バンドルされているElasticsearchへのコネクタが、インストールに最適であるとは限りません。 Elasticsearchとの通信に使用できるコネクタ間の違いを理解することが重要です。
| Liferay CE/DXPバージョン | 名前 | 可用性 | 通信プロトコル | セキュアな接続のサポート | 動作モード |
|---|---|---|---|---|---|
| Liferay 7.4、全種類 | Liferay Connector to Elasticsearch 7 | バンドル | HTTP | ✔ | Sidecar / Remote (Production)* |
| CE 7.3 GA4+、DXP 7.3 GA1+ | Liferay (CE) Connector to Elasticsearch 7 | バンドル | HTTP | ✔ | Sidecar / Remote (Production)* |
| CE 7.2、DXP 7.2 | Liferay Connector (CE) to Elasticsearch 6 | バンドル | トランスポート | ✔** ( 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 のセキュリティ保護 を参照してください。