OpenSearchのインストール
変更通知を受け取り(購読)が必要
OpenSearch を Liferay に接続できます。 OpenSearch のインストールと設定の詳細な手順については、 OpenSearch のドキュメントを参照してください。
OpenSearchコネクタをダウンロードする
ブラックリスト と コネクタ の設定が完了し、 OpenSearch が実行されるまで、OpenSearch コネクタを Liferay にインストールしないでください。
-
https://marketplace.liferay.com/から、 アカウント → サインインをクリックします。
-
OpenSearch を検索し、 Liferay Connector to OpenSearch 2 コネクタを選択します。
-
OpenSearch ランディング ページで [アプリを入手] ボタンをクリックします。
-
プロジェクトが存在する場合は選択し、存在しない場合は追加します。
-
条件に同意して、 「アプリを入手」をクリックします。
-
購入後、ダッシュボードに移動してアプリの zip ファイルをダウンロードします。
-
LPKG を一時フォルダーに抽出します。
Liferay のバージョンとパッチ レベルと互換性のあるアプリケーション バージョンについては、 検索エンジン互換性マトリックス を参照してください。
本番環境のようなインストールのための環境設定
ローカル マシンで本番環境と同様の設定を行うには、Liferay と OpenSearch クラスターのホストを追加します。 お使いのオペレーティングシステムのpath/to/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のインストールと設定
実稼働サーバーに OpenSearch をインストールする前に、 推奨システム設定を確認してください。 OpenSearch の静的な設定は、[OpenSearch Home]/config/opensearch.ymlファイルか、起動時の環境変数で行います。
OpenSearch 2.12 以降では、OpenSearch をインストールする前に、初期管理者パスワードを含む環境変数を設定します。
export OPENSEARCH_INITIAL_ADMIN_PASSWORD=[initial-admin-password]
さらに、OpenSearch 用のセキュリティ証明書を準備します。トランスポート層、HTTP 層、および管理者の証明書が必要になる場合があります。 OpenSearch はデフォルトで PEM 証明書を使用しますが、Liferay では PKCS#12 証明書を使用する必要があります。 関連する OpenSearch ドキュメントを参照してください。
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'
Liferayへの接続
Liferay を起動する前に、Elasticsearch と OpenSearch で動作しない機能を無効にし、OpenSearch に接続するための設定を行います。
Elasticsearch固有のモジュールを無効にする
ブラックリスト 設定ファイル を [Liferay Home]/dxp/files/osgi/configs に追加し、名前は 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.elasticsearch7.api",\
"com.liferay.portal.search.elasticsearch7.impl",\
"com.liferay.portal.search.learning.to.rank.api",\
"com.liferay.portal.search.learning.to.rank.impl"\
]
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"
設定が完了したら、Liferay を起動します。
Liferayを起動してインデックスを再作成する
OpenSearch がインストールされ実行されている場合は、Liferay を起動します。 コントロール パネルで、[構成] → [検索] に移動し、OpenSearch 接続がアクティブであることを確認します。
検索インデックスとスペルチェックインデックスを再インデックスします。 [コントロールパネル] → [設定] → [検索機能]の[アクションをインデックスする]タブで、これらのアクションの両方を呼び出します。