Liferay DXP はコンテンツのインデックスの構築に Elasticsearchを使用します。デフォルトでは、Liferay DXP はElasticsearchをEmbedded として使用していますが、本番環境の運用ではサポートしていません。 テスト環境、開発環境での使用は問題ありませんが、本番環境に移行する際には、Liferayとは別の仮想/物理サーバー上にElasticsearchを設定する必要があります。 インフラ設計において拡張性など様々な利点があります。Elasticsearch用に物理/仮想サーバーを専有で割り当てられる場合は、検索エンジンのサーバリソースを Liferay DXPから独立させることで、パフォーマンスの向上に寄与します。予算上の制約がある場合は、 Liferayとは別JVMを利用することでパフォーマンスを向上できます。
Elasticsearchをインストールする前に、デプロイメントを正常に行う設定について記載のある Preparing to Install Elasticsearch を参照してください。
Liferay DXPへのElasticsearchインストールは、以下の6つのステップで完了します。
-
Liferay DXPに付属しているElasticsearch のバージョンを確認して、Elasticのウェブサイトから該当のバージョンをダウンロードします。
-
アーカイブを稼働させるフォルダ内にElasticsearch を解凍、インストールします。
-
必要なElasticsearch プラグインをインストールします。
-
Elasticsearchクラスタ名を決めます。
-
Liferay DXPを Elasticseachクラスターに接続する設定をします。
-
Liferay DXPを再起動して、インデックスを作成します。
以下の手順で設定後、本番環境用のLiferay DXP インスタンスが作成されます。
インストールが完了したらConfiguring Elasticsearchを参考にElasticsearch設定を行ってください。サーチエンジンのインストールの詳細はこちらを参照してください。
ステップ1: ELASTICSEARCHの使用バージョンを探す
Liferay DXPを起動していない場合は、起動します。
ローカルホストのポート 9200から Embedded モードのElasticsearchにアクセスします。
http://localhost:9200
JSONドキュメントは下記のようなJSONレスポンスが表示されます。
{
"name" : "g0m223N",
"cluster_name" : "LiferayElasticsearchCluster",
"cluster_uuid" : "Ii6STs04Tg-XzTVV5h7M2Q",
"version" : {
"number" : "6.5.1",
"build_hash" : "af51318",
"build_date" : "2018-01-26T18:22:55.523Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
"number"
フィールドにある数値がElasticsearchのバージョンです。
上記の例では 6.1.3です。
Liferay DXPサーバーをシャットダウンします。ローカルの単一マシンテスト環境では、
シャットダウンせずに続行すると、インストールして起動しようとしているElasticsearchサーバーのクラスター名とHTTPポートが既に実行中の組み込みElasticsearchサーバーと一致する場合、ログにエラーが表示されます。
Liferay DXPをシャットダウンする代わりに、リモートElasticsearchサーバーで別のクラスター名(LiferayElasticsearchCluster
以外)とHTTPポート(9200
以外)を使用することができます。
必要な Elasticsearchが分かったら、Elasticのウェブサイトに行って該当するバージョンをダウンロードします。
ステップ2: ELASTICSEARCHのインストール
ここの設定によって、Elasticsearchの起動場所が決定されます。 Liferay DXPを同じサーバー上で起動させるか、独立したサーバーで起動させるかは、利用可能なリソースとインストールのサイズが重要になります。いずれの方法でも個別に調整可能な検索システムを構築できます。
正しいバージョンのElasticsearchを取得したら、起動させるサーバ上で圧縮ファイルを解凍します。
ステップ3: ELASTICSEARCH プラグインのインストール
以下の必要なElasticsearchプラグインをダウンロードします。
analysis-icu
analysis-kuromoji
analysis-smartcn
analysis-stempel
このプラグインをインストールするにはElasticsearch Homeへ行き、以下を入力します。
./bin/elasticsearch-plugin install [plugin-name]
*[[plugin-name]]*にElasticsearch プラグイン名を入力します。
ステップ4: ELASTICSEARCHクラスタの名前指定
Elasticsearch内のクラスタは、シャードのクラスタ名で認識されるノード(サーバー)の集合体です。これらのノードがデータ及びワークロードを分散します。ここでは1ノードクラスターでの設定を説明していますが、複数ノードのクラスター構築に関してはElasticの書類を参照ください。
Elasticsearchのインストールが完了すると、[Elasticsearch Home]
という名前のフォルダに配置されます。クラスタに名前を付けるには、 ElasticsearchとLiferay DXPの両方で指定します。まずは Elasticで指定する為に、下記のファイルを編集します。
[Elasticsearch Home]/config/elasticsearch.yml
cluster.name
の部分をアンコメントします。
お好きな名前を入力します。
cluster.name: LiferayElasticsearchCluster
この時指定する名前は覚えやすい名前に指定することを推奨します。ファイルを保存します。
Elasticsearchを起動します。ご使用のオペレーティングシステムの[Elasticsearch Home]/bin
フォルダーから実行するファイルを起動します
./elasticsearch
Elasticが起動したら、ステータスメッセージに下記のようなトランスポートアドレスが記載されます。
[2018-04-03T15:34:19,784][INFO ][o.e.t.TransportService ] [g0m223N] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
Liferay DXPサーバーがネットワーク内でElasticを検知できるようにこのアドレスは必ず記録をしておきます。
ステップ5: Liferay DXPを Elasticクラスターに接続
次のステップはLiferay DXPの設定です。Liferay DXPを起動し、ログインをし、* [Control Panel]→ [Configuration] → [System Settings] →[Search]とページを辿り、Elasticsearchを検索バーで探し、設定のリストからElasticsearch 6*をクリックします。設定をします。下記のオプションを変更します。
Cluster Name: Elasticsearchで指定した通りにクラスター名を入力します。
Operation Mode: デフォルトではEMBEDDEDになっています。 REMOTEに設定して独立した Elasticsearchに接続します。
Transport Addresses: Elasticノード用にトランスポートアドレスの制限リストを入力します。ここで起動した Elasticサーバーのトランスポートアドレスを入力します。デフォルト値はlocalhost:9300
です。このデフォルト値でも稼働します。
完了したら、保存をクリックします。
ステップ6: Liferay DXP の再起動、インデックスの再構築
Liferay DXPを一度停止して、再起動します。再起動できたら、管理ユーザーとしてログインして、[Control Panel] → [Configuration] → [Search] へ行き、*[Reindex all search indexes(インデックスの再構築)]*の Executeをクリックします。その後、Elasticseachログにメッセージが表示されるはずです。
詳細は、Elasticsearch インストールガイドを参照してください。