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

Elasticsearchのインストール

オンプレミスでElasticsearchをインストール、設定、起動する方法は次のとおりです。

プライマリ データ ストレージ (データベースにバックアップされていないデータの保存) に Elasticsearch インデックスを使用している場合は、 スナップショットと復元のアプローチを使用して、そのデータを新しい Elasticsearch クラスターに取り込むことができます。 Liferay独自の検索の調整インデックス(結果ランキングとSynyonyms用)は、Liferay DXP7.2と7.3のプライマリーストレージのインデックスです。

本番環境のようなインストールのための環境設定

ホストの追加

localhostまたはDockerコンテナを使用してテスト環境をセットアップする場合は、これをスキップできます。 ローカルマシンで本番環境のようにセットアップするには、LiferayとElasticsearchクラスターのホストを追加します。 お使いのオペレーティングシステムのpath/to/etc/hostsファイルに次の情報を追加します。

<your IP> es-node1
<your IP> es-node2
<your IP> es-node3
<your IP> dxp.liferay.com

ループバックアドレス127.0.0.1ではなく、システムの実際のIPアドレスを使用してください。

mmapの調整

Elasticsearchは、ほとんどのオペレーティングシステムのデフォルトよりも多くのmmapカウントを必要とします(インデックスを保持するディレクトリをメモリにマッピングするため)。 Linuxでは、rootユーザーとして、次のように実行します。

sysctl -w vm.max_map_count=262144

互換性ヘッダー

Elasticsearch 8 の場合、Liferay と Elasticsearch の間にファイアウォールまたはプロキシがある場合は、Liferay が各リクエストに設定する互換性 HTTP ヘッダーが許可され、ネットワーク トラフィックで保持されていることを確認してください。 詳細については、 Elasticsearch の REST API 互換性の要求 を参照してください。

Elasticsearch をインストール

  1. Elastic の Web サイトから Elasticsearch アーカイブをダウンロードします。

    重要

    お使いのLiferayバージョンと互換性のある最新のElasticsearchアーカイブ をダウンロードしてください。

  2. Elasticsearchを実行するローカルフォルダにアーカイブの内容を展開します。 このフォルダがElasticsearchホームです。

  3. [Elasticsearch Home]/binフォルダで次のコマンドを実行して、必要なElasticsearchプラグインをインストールします。

    ./elasticsearch-plugin install analysis-icu
    
    ./elasticsearch-plugin install analysis-kuromoji
    
    ./elasticsearch-plugin install analysis-smartcn
    
    ./elasticsearch-plugin install analysis-stempel
    

Elasticsearchの設定

各Elasticsearchサーバは、[Elasticsearch Home]/config/elasticsearch.ymlファイルによって設定されます。

Elasticsearch 7 または 8.0 を使用している場合、まれに、 indices.query.bool.max_clause_count 設定 (デフォルトは 4096) を増やすことが必要になる場合があります。これは、 [*] のフィールド拡張で一致するフィールドが多すぎますクエリにネストされた句が多すぎます。maxClauseCount が 1024 に設定されていますなどのエラーを防ぐために必要です。 これを 1024 * [ヒープサイズ (GB)]に設定することを検討してください。 たとえば、Elasticsearch の 8GB のヒープ サイズでは、最大句カウント値として 8192を使用する必要があります。 この設定は Elasticsearch 8.1 以降では無効です。 最大句カウント値は動的に計算されます

シングルノードおよびマルチノードのElasticsearchクラスター構成の例を次に示します。

Elasticsearch サーバーとの通信の認証と暗号化については、「 Elasticsearch のセキュリティ保護 」を参照してください。

例:シングルノードの本番環境Elasticsearchクラスター

以下は、シングルノードクラスターのelasticsearch.yml構成です。

cluster.name: LiferayElasticsearchCluster

discovery.type: single-node
http.port: 9200
network.host: es-node1
node.name: es-node1
transport.port: 9300

# Add security settings below
xpack.security.enabled: false

# Uncomment for Liferay versions prior to DXP 2024.Q2/Portal GA120. This
# disables index auto-creation for indexes prefixed with 'liferay-'
# action.auto_create_index:"-liferay-*

Liferay DXP 2024.Q2+/Portal GA120+ は、 liferay- で始まるインデックスと、定義済みの カスタムインデックス名プレフィックスについて、Elasticsearch でのインデックスの自動作成を自動的に無効にします。

LiferayElasticsearchClusterと呼ばれるこのクラスターには、es-node1と呼ばれるノードが1つあります。

ヒント

本番モードのセットアップ用にホストを構成していない場合は、ホスト値として localhost を使用します。 Elasticsearchは、HTTPとTransportの通信のためにループバックアドレスにバインドすることができます。 単一ノード検出とともに、これは Elasticsearch サーバーが 開発モードで実行されていることを意味します。

例:マルチノード本番環境Elasticsearchクラスター

以下は、3ノードクラスターのes-node3と呼ばれるノードのelasticsearch.ymlです。

cluster.name: LiferayElasticsearchCluster

# Example production mode settings - 3-node cluster
cluster.initial_master_nodes:
  - es-node1
  - es-node2
  - es-node3
discovery.seed_hosts:
  - es-node1:9300
  - es-node2:9301
  - es-node3:9302
http.port: 9202
network.host: es-node3
node.name: es-node3
transport.port: 9302

# Add security settings below
xpack.security.enabled: false

# With Liferay versions prior to DXP 2024.Q2/Portal GA120, uncomment to disable
# index auto-creation for indexes prefixed with 'liferay-'
# action.auto_create_index:"-liferay-*

Liferay DXP 2024.Q2+/Portal GA120+ は、 liferay- で始まるインデックスと、定義済みの カスタムインデックス名プレフィックスについて、Elasticsearch でのインデックスの自動作成を自動的に無効にします。

ヒント

本番モードのセットアップ用にホストを構成していない場合は、ホスト値として localhost を使用します。 Elasticsearchは、HTTPとTransportの通信のためにループバックアドレスにバインドすることができます。 これは 開発モードと呼ばれます。

関連するElasticsearchドキュメント:


!!! important
    Each Elasticsearch node's `elasticsearch.yml` file must use unique values for the following properties.

    - `node.name`
    - `http.port`
    - `network.host`
    - `transport.port`

### Enforce Bootstrap Checks for Single Server in Production Mode

Elasticsearch [bootstrap checks](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/bootstrap-checks.html) inspect configurations on startup and logs warnings for missing or suspicious configurations. In production, you should configure bootstrap checks to halt startup on misconfiguration.

To enforce the bootstrap checks in a single-node cluster, add this property to the end of your node's `[Elasticsearch Home]/config/jvm.options` file:

```properties
-Des.enforce.bootstrap.checks=true

Elasticsearchの起動

binフォルダからElasticsearchを起動します。

./elasticsearch
ヒント

Elasticsearch が起動に失敗し、ログにエラー メッセージ Elasticsearch が予期せず終了しました と表示される場合は、ヒープ サイズを増やしてください。 テスト中に、 config/jvm.options ファイルを開き、 -Xms4g-Xmx4gの例の設定をコメント解除できます。 本番環境では、そのファイル内の指示に従ってこれらのパラメータを適切に設定してください。

詳細については、 Elasticsearch インストールのトラブルシューティング を参照してください。

Elasticが起動したら、ステータスメッセージに下記のようなトランスポートアドレスが記載されます。

[2019-04-01T16:55:50,127][INFO ][o.e.t.TransportService   ] [HfkqdKv] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}

Liferay 7.2を実行している場合は、TransportServiceステータスメッセージのpublish_addressアドレスをメモしてください。 このアドレスでElasticsearchに接続するようにLiferayサーバーを設定する必要があります。

Elasticsearch は Liferayからの 接続の準備ができています。

本番環境で実行している場合は、 Liferay と Elasticsearch 間の通信をセキュリティで保護します