OpenSearchのインストール
サブスクリプションが必要です Liferay DXP 2025.Q1+
OpenSearchをLiferayに接続できます。 OpenSearch のインストールと設定の詳細な手順については、 OpenSearch のドキュメント を参照してください。
OpenSearchコネクタをダウンロード
Elasticsearch 固有のモジュールが無効化され、コネクタが設定され、OpenSearch が実行されるまで、OpenSearch コネクタをLiferay にインストールしないでください。
-
https://marketplace.liferay.com/から、 アカウント → サインイン をクリックします。
-
Liferay Connector to OpenSearch 2を検索し、アプリのページを開いて、 Get App をクリックします。
-
プロジェクトが存在する場合は選択し、存在しない場合は追加します。
-
条件に同意して、 アプリを入手 をクリックしてください。
-
購入後、ダッシュボードに移動してアプリの
LPKGファイルをダウンロードしてください。
お使いの Liferay のバージョンとパッチ レベルに対応するアプリケーション バージョンについては、 検索エンジン互換性マトリックス を参照してください。
Hosts ファイルの設定
Liferay および OpenSearch クラスタで名前付きホストを使用するには、それらをオペレーティングシステムの /etc/hosts ファイルに追加します。
<your IP> os-node1
<your IP> os-node2
<your IP> os-node3
<your IP> dxp.liferay.com
ループバックアドレス127.0.0.1ではなく、システムの実際のIPアドレスを使用してください。
この手順は、最小限のローカルテストの場合は省略可能ですが、OpenSearchおよびコネクタ構成で名前付きホストを使用する場合は必須です。 Docker を使用した迅速なローカルセットアップについては、 演習: Docker を使用して Liferay と OpenSearch を実行する を参照してください。
セキュリティ証明書を生成する
OpenSearchを設定する前に、セキュリティ証明書を生成してください。 OpenSearchノードは、トランスポート層(ノード間通信)とHTTP層(クライアント接続)に証明書を使用します。 以下の手順では、認証局(CA)を作成し、クラスタ内のすべてのホスト名をカバーするノード証明書に署名し、OpenSearchノード用のPKCS#12キーストアとLiferay用の別のトラストストアを作成します。 PKCS#12はOpenSearchとJDKの両方でサポートされています。 OpenSearch は PEM 形式もサポートしています。代替方法については、OpenSearch ドキュメントの TLS 証明書の設定 および 自己署名証明書の生成 を参照してください。
-
認証局(CA)を生成する:
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -sha256 -days 730 \ -out ca.pem -subj "/CN=OpenSearch-CA" -
ノードキーと証明書署名要求を生成します。 すべてのノードで同じ証明書を使用するには、各ノードのホスト名をサブジェクト代替名としてリストします。
openssl genrsa -out node.key 2048 openssl req -new -key node.key -out node.csr -subj "/CN=os-node1" printf 'subjectAltName=DNS:os-node1,DNS:os-node2,DNS:os-node3' > node.ext -
認証局(CA)と証明書に署名してください。
openssl x509 -req -sha256 -days 730 \ -in node.csr -CA ca.pem -CAkey ca.key -CAcreateserial \ -out node.pem -extfile node.ext -
OpenSearchノード用のキーストアを作成します。
openssl pkcs12 -export \ -in node.pem -inkey node.key \ -out keystore.p12 -passout pass:liferay -
Liferay用のトラストストアを作成します。 トラストストアにはCA証明書が含まれているため、LiferayはOpenSearchの証明書を検証できます。
openssl pkcs12 -export -nokeys \ -in ca.pem \ -out truststore.p12 -passout pass:certpass
keystore.p12 と truststore.p12 を各 OpenSearch ノードの [OpenSearch Home]/config/certs フォルダーに移動します。 truststore.p12 を Liferay サーバー上のアクセス可能なパスにコピーします。
OpenSearchのインストールと設定
OpenSearchを本番サーバーにインストールする前に、 推奨システム設定を確認してください。 OpenSearch の静的な設定は、[OpenSearch Home]/config/opensearch.ymlファイルか、起動時の環境変数で行います。
OpenSearch 2.12以降の場合、OpenSearchをインストールする前に、初期管理者パスワードを環境変数に設定してください。
export OPENSEARCH_INITIAL_ADMIN_PASSWORD=[initial-admin-password]
Liferay 用に構成する必要のある主な OpenSearch 設定は、Liferay の OpenSearch コネクタのプロパティに対応するものです。
discovery.typenetwork.hosthttp.portnode.nametransport.portplugins.security.*
これらの基本的な接続構成に加えて、 indices.query.bool.max_clause_count 設定 (デフォルトは 1024) を増やすことで、 [*] のフィールド展開が一致するフィールドが多すぎます や クエリにネストされた句が多すぎます、などのエラーを防ぐことができます。 maxClauseCount は 1024 に設定されています。 これを 1024 * [ヒープサイズ (GB)] に設定することを検討してください。 例えば、OpenSearch の 4GB ヒープサイズでは、最大句数の値として 4096 を使用する必要があります。
以下は、トランスポート層とHTTP層に同じ証明書を使用した、クラスタの1ノード用のopensearch.yml設定の例である:
indices.query.bool.max_clause_count: 4096
cluster.name: LiferayOpenSearchCluster
http.port: 9200
network.host: os-node1
node.name: os-node1
transport.port: 9300
discovery.seed_hosts: ["os-node1", "os-node2", "os-node3"]
cluster.initial_cluster_manager_nodes: ["os-node1", "os-node2", "os-node3"]
# Transport SSL
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.keystore_type: PKCS12
plugins.security.ssl.transport.keystore_filepath: certs/keystore.p12
plugins.security.ssl.transport.keystore_password: liferay
plugins.security.ssl.transport.truststore_type: PKCS12
plugins.security.ssl.transport.truststore_filepath: certs/truststore.p12
plugins.security.ssl.transport.truststore_password: liferay2
# HTTP SSL
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.keystore_type: PKCS12
plugins.security.ssl.http.keystore_filepath: certs/keystore.p12
plugins.security.ssl.http.keystore_password: liferay
plugins.security.ssl.http.truststore_type: PKCS12
plugins.security.ssl.http.truststore_filepath: certs/truststore.p12
plugins.security.ssl.http.truststore_password: liferay2
# Certficiate Distinguished Names
plugins.security.nodes_dn:
- 'CN=os-node1,OU=KM,O=Liferay,L=DiamondBar,ST=California,C=US'
- 'CN=os-node2,OU=KM,O=Liferay,L=DiamondBar,ST=California,C=US'
- 'CN=os-node3,OU=KM,O=Liferay,L=DiamondBar,ST=California,C=US'
plugins.security.authcz.admin_dn:
- 'CN=kirk,OU=client,O=client,L=test,C=de'
キーストアファイルとトラストストアファイルは、 [OpenSearch Home]/config フォルダ内に配置する必要があります。
ローカル環境でテストする場合は、いくつかの設定を変更することでセットアップを簡素化できます。 これらの設定は、本番環境には含めてはなりません。
# Only bind to the local loopback interface
network.host: _local_
# Specify a single-node cluster
discovery.type: single-node
# Generate the secruity index at startup
plugins.security.allow_default_init_securityindex: true
# Do not verify hostnames in the transport layer: this is not needed with a single node cluster
# plugins.security.ssl.transport.enforce_hostname_verification: false
./bin/opensearch で OpenSearch を開始します。
Liferayでは、OpenSearchにいくつかの分析プラグインをインストールする必要があります。 たとえあなたのインスタンスがこれらのプラグインの機能を必要としない場合でも、Liferayはこれらのプラグインを必要とします。 opensearch-plugin ツールを使用して、実行中のOpenSearchに必要な分析プラグインをインストールします。
./bin/opensearch-plugin install analysis-icu analysis-kuromoji analysis-smartcn analysis-stempel
接続を確認するには、以下のコマンドを実行してください。
curl https://localhost:9200 -ku 'admin:admin-pass'
OpenSearchでLiferayユーザーを作成する
Liferayを接続する前に、Liferayが認証に使用する専用のOpenSearchユーザーを作成してください。 OpenSearch のドキュメントの ユーザーの作成 を参照してください。 以下の接続設定の ユーザー名 と パスワード フィールドに、新しいユーザーの認証情報を使用してください。
Liferayに接続する
Liferayを起動する前に、Elasticsearchを無効にするための設定、OpenSearchと連携しない機能を無効にするための設定、およびOpenSearchに接続するための設定を行ってください。
Elasticsearch固有のモジュールを無効にする
Liferay Home]/dxp/files/osgi/configigsに com.liferay.portal.bundle.blacklist.internal.configuration.BundleBlacklistConfiguration.configという 設定ファイルを追加します:
blacklistBundleSymbolicNames=[\
"com.liferay.portal.search.elasticsearch.cross.cluster.replication.impl",\
"com.liferay.portal.search.elasticsearch.monitoring.web",\
"com.liferay.portal.search.elasticsearch8.api",\
"com.liferay.portal.search.elasticsearch8.impl",\
"com.liferay.portal.search.learning.to.rank.api",\
"com.liferay.portal.search.learning.to.rank.impl"\
]
Liferay DXP 2025.Q1-4 の場合、上記のバンドルシンボル名で elasticsearch8 を elasticsearch7 に置き換えてください。
OpenSearchコネクタの設定
コネクタをデプロイする前に、Liferay-OpenSearch接続のプロパティを指定してください。
以下の設定でファイル com.liferay.portal.search.opensearch2.configuration.OpenSearchConfiguration.config を [Liferay Home]/dxp/files/osgi/configs に作成します。
remoteClusterConnectionId="REMOTE"
次に、上記で構成したリモート クラスターの構成をファイル com.liferay.portal.search.opensearch2.configuration.OpenSearchConnectionConfiguration-REMOTE.config に作成します。
Liferay の OpenSearch Connector 構成の完全なリストについては、 OpenSearch Connector 構成リファレンス を参照してください。
active=B"true"
authenticationEnabled=B"true"
connectionId="REMOTE"
httpSSLEnabled=B"true"
logExceptionsOnly=B"false"
networkHostAddresses=["https://os-node1:9200","https://os-node3:9201","https://os-node3:9202"]
password="liferay-user-password"
truststorePassword="certpass"
truststorePath="/path/to/certs/truststore.p12"
truststoreType="pkcs12"
username="liferay"
AWS Managed OpenSearch Service ドメインに接続する場合は、 networkHostAddresses をポート 443 の AWS エンドポイント URL (例: ["https://[domain].region.es.amazonaws.com:443"]) に設定し、トラストストアの設定を省略します。AWS がドメインの TLS を管理します。
設定が完了したら、コネクタをデプロイします。
OpenSearchコネクタをデプロイする
Elasticsearchモジュールをブラックリストに登録し、コネクタを設定し、OpenSearchを実行した状態で、Liferayを起動する前にLPKGをデプロイします。
-
従来のインストール方法では、LPKG を
[Liferay Home]/deployフォルダーにコピーします。 -
Docker の場合は、LPKG をコンテナの
/opt/liferay/deployにバインドマウントされたホストフォルダにコピーします (設定例については 演習: Docker を使用して Liferay と OpenSearch を実行する を参照してください)。
Liferayを起動してインデックスを再作成する
OpenSearchがインストールされ、実行中の場合は、Liferayを起動してください。 コントロールパネルで、[設定] → [検索] に移動し、OpenSearch の接続が有効になっていることを確認してください。

検索インデックスとスペルチェックインデックスを再構築します。 [コントロールパネル] → [設定] → [検索機能]の[アクションをインデックスする]タブで、これらのアクションの両方を呼び出します。