Solrのインストール
7.2-7.3 (CE、DXP); 7.4 DXP U60+
Solrは、Apache Luceneをベースに開発されたエンタープライズサーチプラットフォームとして人気があります。 信頼性、スケーラビリティ、フォールトトレラントに優れています。 詳細については、 こちらをご覧ください。
Solr は Liferay 7.4 では メンテナンス モード になっています。
これらの手順では、 互換性のある Liferay バージョンに Solr 8 をインストールする方法について説明します。 Solr 7をインストールする場合、必要に応じてバージョン名を調整してください。
Solrを使用する際には、重要な制限があります。 インストールする前に、 Solr の制限事項 をお読みください。
互換性
パッチレベルごとに互換性のある Solr および Liferay バージョンの詳細については、 検索エンジン互換性マトリックス を参照してください。
Solrコネクタのダウンロード
Solrへのコネクターをまだ取得していない場合、
-
実行中の Liferay で、「コントロール パネル」→「マーケットプレイス」→「ストア」に移動します。 ログインしてください。
-
アプリへのアクセス権を付与します。
-
Solr 8を検索し、Liferayのインストールに対応するアプリを選択します。
Liferay フレーバー Solrコネクタ名 Liferay Portal/コミュニティー版 Liferay CE Connector to Solr 8 Liferay DXP Liferay Connector to Solr 8 -
アプリのランディングページにある[Free]ボタンをクリックします。
-
プロジェクトが存在する場合は選択し、存在しない場合は追加します。
-
条件に同意の上、[購入]をクリックします。
購入後、[Past Versions]ページからLPKGファイルをダウンロードしてください。
-
以下のURLのhttps://liferay.com
user.nameを差し替えます。CE: https://web.liferay.com/web/[user.name]/apps/-/marketplace_apps/225525277/versions DXP: https://web.liferay.com/web/[user.name]/apps/-/marketplace_apps/182518167/versions
-
[アプリ]をクリックして、アプリのLPKGファイルをダウンロードします。
Liferay のバージョンとパッチ レベルと互換性のあるアプリケーション バージョンについては、 検索エンジン互換性マトリックス を参照してください。
Elasticsearchのみの機能を無効にする
Liferay Connector to Solrをインストールする際には、ブラックリストに登録するか、無効にする必要があります。
- DXPの機能のうち、Elasticsearchでのみ動作するモジュール
- Liferay Connector to Elasticsearchモジュールの組み合わせ
Elasticsearchのみの機能のブラックリスト化
先に進む前に、Liferayを停止します。
Elasticsearch専用機能をブラックリスト化するには、
-
Liferay DXP 7.4では、ポータルプロパティまたはDocker環境変数を使用して、すべての Liferay Enterprise Search 機能を無効にします。
このプロパティを
portal-ext.properties に追加します:enterprise.product.enterprise.search.enabled=falseこのDocker環境変数を設定します。
LIFERAY_ENTERPRISE_PERIOD_PRODUCT_PERIOD_ENTERPRISE_PERIOD_SEARCH_PERIOD_ENABLED=false詳細については、「 Liferay Enterprise Search のアクティブ化 」を参照してください。
-
ブラックリスト 設定ファイルを作成します。 名称はLiferayバージョンによって異なります。
Liferay 7.4の場合、以下のように作成します。
com.liferay.portal.bundle.blacklist.internal.configuration.BundleBlacklistConfiguration.configLiferay 7.2、7.3の場合、以下のように作成します。
com.liferay.portal.bundle.blacklist.internal.BundleBlacklistConfiguration.config -
お使いのLiferayのバージョンに合わせた設定を入力します。
Liferay DXP 7.4:
blacklistBundleSymbolicNames=[\ "com.liferay.portal.search.elasticsearch7.api",\ "com.liferay.portal.search.elasticsearch7.impl",\ "com.liferay.portal.search.elasticsearch7.spi",\ ]この設定により、 Elasticsearch 7 検索エンジンコネクタの モジュールが無効になります。
enterprise.product.enterprise.search.enabled=falseプロパティはLiferay Enterprise Search モジュールを無効化します。 Solr をインストールすると、他の 互換性のない機能が自動的に無効になります。Liferay DXP 7.2および7.3:
blacklistBundleSymbolicNames=[\ "com.liferay.portal.search.elasticsearch7.api",\ "com.liferay.portal.search.elasticsearch7.impl",\ "com.liferay.portal.search.elasticsearch7.spi",\ "com.liferay.portal.search.tuning.rankings.web",\ "com.liferay.portal.search.tuning.synonyms.web",\ "com.liferay.portal.search.tuning.web",\ "com.liferay.portal.search.tuning.web.api"\ ] -
Liferayの
osgi/configsフォルダに配置します。
Solrのインストールと設定
Liferay用のSolrをインストールし、設定します。
-
互換の Solr サーバーをダウンロードして解凍します。
-
solr-[version]/server/solrに移動します。 -
liferayという新しいフォルダーとliferay/confとliferay/dataという2つのサブフォルダーを作成します。 -
configsets/_default/confのコンテンツをliferay/confフォルダーにコピーします。 -
Liferay Connector to Solr 8のLPKGファイルをアーカイブマネージャーで開きます。
-
Liferay Connector to Solr 8 - Impl.lpkgを開きます。 -
com.liferay.portal.search.solr8.impl.jarファイルを開き、META-INF/resources/solrconfig.xmlおよび
META-INF/resources/schema.xml宛先
liferay/confこれは、現在の
solrconfig.xmlとschema.xmlファイルを、Liferayから来るデータをどのようにインデックスするかをSolrに伝えるもので置き換えます。 -
liferayフォルダにcore.propertiesファイルを作成し、この設定を追加します。config=solrconfig.xml dataDir=data name=liferay schema=schema.xml -
チェックポイント:
liferayフォルダがこのような構造になっていることを確認してください。liferay ├── conf │ ├── lang │ │ ├── contractions_ca.txt │ │ ├── ....txt │ ├── managed-schema │ ├── protwords.txt │ ├── schema.xml │ ├── solrconfig.xml │ ├── stopwords.txt │ └── synonyms.txt ├── core.properties └── data -
Solrをインストールしたトップレベルのフォルダー(
solr-[version])から次のように入力して、Solrサーバーを起動します。./bin/solr start -f -
Solrサーバーは、デフォルトではポート
8983で待機します。 http://localhost:8983/solr/#/~cores に移動し (ホストとしてlocalhostを使用してローカルでテストしていると仮定)、liferayコアが利用可能であることを確認します。
これでSolrがインストールされ、起動しました。 次にLiferay用のSolrコネクタをインストールし、設定します。
Solrコネクタのインストールと設定
先に進む前に、Liferayを停止します。
Solrへのコネクタがインストールされると、Liferay Connector to Solrのデフォルト値がSolr自身のデフォルトと一致するため、デフォルトの構成がテストインストールで機能します。 利用可能な設定の完全なリストについては、 構成リファレンス を参照してください。 本番環境では、最低限、コネクタの読み取りと書き込みのURLを設定する必要があります。
Liferayのosgi/configsフォルダにデプロイされた設定ファイルを使用して、Solrコネクタのデフォルト設定を編集するのが最も一般的です。
-
ファイルに名前を付けます。
com.liferay.portal.search.solr8.configuration.SolrConfiguration.config -
ダウンロードした Solr コネクタ LPKG を Liferay の
osgi/marketplaceフォルダにコピーし、その構成ファイルをosgi/configsに配置します。 -
Liferayを起動します。
-
LiferayでSolr接続を確認します。 グローバル メニューを開き、 コントロール パネル → 構成 → 検索 に移動して、接続がアクティブであることを確認します。

-
Liferay データを Solr に再インデックスします。 グローバル メニューを開き、 コントロール パネル → 構成 → 検索に移動します。 [インデックス アクション] ウィンドウで、[検索インデックスの再インデックス] オプションの横にある [実行 ] をクリックします。
スペルチェックのインデックスも再インデックスします。
SolrCloudによる高可用性
Solrサーバーのクラスターが必要な場合は、SolrCloudを使用します。 SolrCloud を本番環境で使用するには、 外部 ZooKeeper アンサンブルを設定する必要があることに注意してください。 ZooKeeper は、SolrCloud クラスターなどの分散システムを管理するための集中管理調整サービスです。
ここで紹介する手順は、SolrCloudをLiferayで構成するために必要な最低限のものです。 例えば、この手順では、1台のマシンでのSolrCloud構成について説明します。 本番環境では、複数の物理マシンまたは仮想マシンを使用する必要があります。 ここでは、上記のSolrのインストールと設定に沿って説明しています。 詳細については、 SolrCloud ガイドを参照してください。
-
Solrサーバーが稼働している場合は停止します。
-
Solrインストール内の
configsetsフォルダ (solr-[version]/server/solr/configsets)に移動します。 -
liferay_configsというフォルダを作成します。 -
confフォルダをsolr-[version]/server/solr/liferayから先ほど作成したliferay_configsフォルダにコピーします。configset/liferay_configsフォルダには、SolrCloudのLiferayコレクションの設定が含まれており、ZooKeeperにアップロードされます。 先に設定したconfフォルダを、liferayサーバーからコピーする際には、Liferay Solr Adapterに付属するschema.xmlとsolrconfig.xmlファイルを使用します。 -
インタラクティブなSolrCloudセッションを起動し、SolrCloudクラスターを設定します。 Solrのインストールルートから、以下を実行します。
./bin/solr -e cloud -
セットアップウィザードを完了します。 ここでは、2ノードのクラスターを作成する手順を説明します。
-
ノード数には
2を入力してください。 -
ポートは
8983と7574(デフォルト)を指定します。 両ノードは、ログに出力されるスタートコマンドで起動されます。Starting up Solr on port 8983 using command: "bin/solr" start -cloud -p 8983 -s "example/cloud/node1/solr" Waiting up to 180 seconds to see Solr running on port 8983 [|] [-] Started Solr server on port 8983 (pid=8846). Happy searching! Starting up Solr on port 7574 using command: "bin/solr" start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983 Waiting up to 180 seconds to see Solr running on port 7574 [|] [/] Started Solr server on port 7574 (pid=9026). Happy searching! -
コレクションに liferayという名前を付けます。
-
コレクションを2つのシャードに分割します。
-
シャードごとに2つのレプリカを指定します。
-
コンフィギュレーションを選択するプロンプトが表示されたら、 liferay_configsと入力します。 クラスタが起動すると、以下のようなログメッセージが表示されます。
SolrCloud example running, please visit http://localhost:8983/solr -
これで、ローカルのSolrCloudクラスターに liferay という新しいコレクションができました。 status コマンドを実行して、その状態を確認します。
./bin/solr status
ログ出力では、ノードが見つかったことと、各ノードの情報が一覧表示されます。
Found 2 Solr nodes:
Solr process 725273 running on port 8983
{
"solr_home":"/home/me/_temp/solr-8.11.2/example/cloud/node1/solr",
"version":"8.11.2 17dee71932c683e345508113523e764c3e4c80fa - mdrob - 2022-06-13 11:27:54",
"startTime":"2023-01-05T20:29:45.779Z",
"uptime":"0 days, 0 hours, 1 minutes, 29 seconds",
"memory":"99.6 MB (%19.4) of 512 MB",
"cloud":{
"ZooKeeper":"localhost:9983",
"liveNodes":"2",
"collections":"1"}}
...
SolrCloudモードで実行中のSolrを停止するには、次のように stop コマンドを使用します。
./bin/solr stop -all
SolrCloud用Solrコネクタの設定
LiferayでSolrCloudをサポートするには、LiferayのSolrコネクタでクライアントタイプを CLOUD と指定します。
-
[システム設定]またはOSGiの設定ファイルからClient TypeをCLOUDに設定します。
clientType="CLOUD" -
Liferayを起動します。 SolrコネクタLPKGをインストール後、初めて起動する場合は、ログの指示に従ってLiferayを再起動してください。
![[Solr システム設定]のエントリーから、「Client Type」を「Cloud」に設定します。](https://resources.learn.liferay.com/images/dxp/latest/en/search/installing-and-upgrading-a-search-engine/solr/installing-solr/images/03.png)
Solr コネクタ設定リファレンス
設定ファイルを使用するだけでなく、システム設定を使用してSolr 8の設定を更新することができます。
![Liferayの[システム設定]アプリケーションからSolrを設定することは、開発中やテスト中に最も役立ちます。](https://resources.learn.liferay.com/images/dxp/latest/en/search/installing-and-upgrading-a-search-engine/solr/installing-solr/images/02.png)
以下は、デフォルトの設定と、Solrコネクタアプリケーションをインストールしたときに利用可能になる設定(システム設定の検索カテゴリまたは .config ファイルで設定可能)です。 これらの設定は、限られた値を受け入れるものです。
設定ファイル: com.liferay.portal.search.solr8.configuration.SolrConfiguration.config
システム設定エントリ: Solr 8
authenticationMode=["BASIC" or "CERT"]
clientType=["REPLICATED" or "CLOUD"]
defaultCollection="liferay"
logExceptionsOnly=B"true"
readURL="http://localhost:8983/solr/liferay"
writeURL="http://localhost:8983/solr/liferay"
zkHost="localhost:9983"
設定ファイル: com.liferay.portal.search.solr8.configuration.SolrHttpClientFactoryConfiguration.config \
システム設定エントリ: Solr 8 HTTP クライアントファクトリー
basicAuthPassword="solr"
basicAuthUserName="solr"
defaultMaxConnectionsPerRoute="20"
maxTotalConnections="20"
設定ファイル: com.liferay.portal.search.solr8.configuration.SolrSSLSocketFactoryConfiguration.config \
システム設定エントリ: Solr 8 SSL ファクトリー
keyStorePassword="secret"
keyStorePath="classpath:/keystore.jks"
keyStoreType="JKS"
trustStorePassword="secret"
trustStorePath="classpath:/truststore.jks"
trustStoreType="JKS"
verifyServerCertificate=B"true"
verifyServerName=B"true"