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
または、ユーザーインターフェイスでコネクタを設定することもできます。 グローバルメニュー()で、[コントロールパネル]→ [システム設定]を開き、 [検索] のカテゴリーを開きます。 このエントリはElasticsearch 7と呼ばれます。
Liferay 7.2では、コントロールパネルはプロダクトメニュー(
)にあります。
Liferay 7.3+コネクタのシンプル設定では、本番環境モード(productionModeEnabled="true"
)が有効になり、各Elasticsearchノード(networkHostAddresses=["http://es-node:9200"]
)へのURLが設定されます。
次の設定ファイルを作成します。
com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
.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"
.config
ファイルを[Liferay Home]/osgi/configs
フォルダに配置します。
Tip
コネクタには多くの設定項目があります。 それぞれの定義については、Elasticsearchコネクターの設定 を参照してください。 ほとんどの設定は、 Elasticsearch で利用可能な設定に対応しています。
Elasticsearchサーバーを名前で参照するには、各Elasticsearchサーバー名をDNSまたはLiferayサーバーの/etc/hosts
ファイル内のIPアドレスにマップします。
Tip
ネットワークホストアドレスの書式は http[s]://[ホスト名]:[port]
です。 LiferayのDockerコンテナを使用している場合、--add-host [host name]:[IP address]
オプションを 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はこのファイルを読み取り、宣言されたバンドルの起動をブロックします。
Tip
Docker:
Liferay Home
と Liferay インストールの他の重要なフォルダは、Docker コンテナの/mnt/liferay
で here と記述してアクセスすることが可能です。docker cp /path/to/local/file [container_name]:/mnt/liferay/files/osgi/configs
でコンテナに設定ファイルを配置することができます。 その後、docker cp
を使って Liferay Connector to Elasticsearch 7 LPKGファイルをデプロイすることができます。
Elasticsearch 7コネクタのインストール¶
Liferay Connector to Elasticsearch 7をダウンロードします。
コネクタがElasticsearchのバージョンに対応していることを確認してください。 コネクタアプリケーションが新しいバージョン(7.18.0など)をサポートしている場合でも、コネクタのクライアントライブラリが古いバージョンのElasticsearch(7.17.1など)用である可能性があることに注意してください。 Liferayは、Elasticsearchのマイナーバージョンごとにコネクタをテストし、必要に応じて新しいアップデートコネクタバージョンを作成します。 コネクタの互換性については、 検索エンジンの互換性マトリックス を参照してください。
-
[Liferay Home]/deploy
Dockerの場合、
docker cp ~/path/to/Liferay\ Connector\ to\ Elasticsearch.lpkg [container]:/mnt/liferay/deploy
Liferayサーバーを起動すると(まだ起動していない場合)、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の接続がアクティブになっていることを確認します。
検索インデックスとスペルチェックインデックスのインデックスを再作成します。 コントロールパネルの → 構成 → 検索の[インデックスアクション]タブで、この2つのアクションを起動します。
Liferay 7.3+では、[Workflow Metrics Settings]ウィンドウからワークフロー統計情報インデックスを再作成します。
グローバルメニュー(
)から[アプリケーション] → [ワークフローメトリクス]に移動します。
アプリオプションメニュー(
)から [Settings] ウィンドウを開きます。
[すべてインデックスを再構築] をクリックします。 この操作をシステム内の各仮想インスタンスに対して繰り返します。
注釈
Elasticsearchのインデックスをプライマリデータストレージとして使用している場合(データベースによってバックアップされていないデータを保存)、Elasticsearchのバックアップ を使用してそのデータを新しいElasticsearchクラスタに取り込むことが可能です。 Liferay独自の検索の調整インデックス(結果ランキングとSynyonyms用)は、プライマリーストレージのインデックスです。
これで、LiferayはリモートのElasticsearch 7インストールにコンテンツのインデックスを作成します。
利用可能なLiferay Elasticsearchコネクタ¶
バンドルされているElasticsearchへのコネクタが、インストールに最適であるとは限りません。 Elasticsearchとの通信に使用できるコネクタ間の違いを理解することが重要です。
Liferay CE/DXPバージョン |
名前 |
利用可能性 |
通信プロトコル |
セキュアな接続のサポート |
動作モード |
---|---|---|---|---|---|
Liferay 7.4、全種類 |
Liferay Connector to Elasticsearch 7 |
バンドル |
✔ |
Sidecar / Remote (Production)* |
|
ce 7.3 ga4, dxp 7.3 ga1 |
Liferay (CE) Connector to Elasticsearch 7 |
バンドル |
✔ |
Sidecar / Remote (Production)* |
|
CE 7.2、DXP 7.2 |
Liferay Connector (CE) to Elasticsearch 6 |
バンドル |
✔\ ****(requires LES ) |
エンベデッド/リモート |
|
CE 7.2、DXP 7.2 |
Liferay Connector (CE) to Elasticsearch 7 (v3.x) |
✔ |
エンベデッド/リモート |
* コネクタ設定の 動作モード( operationMode
) 設定は非推奨になり、 本番モードが有効(productionModeEnabled
)に置き換えられました。
** Liferay Enterprise Search Security アプリケーションを通して。
互換性のあるElasticsearchのバージョンや必要なパッチレベルなど、詳細な互換性情報については、 検索エンジン互換性マトリクス を参照してください。
次のステップ¶
LiferayがElasticsearchに接続されたので、Elasticsearchの使用を開始できます。 本番環境では、LiferayサーバーとElasticsearchサーバー間の通信を保護する必要があります。 詳しくは、Elasticsearchの保護を参照してください。