Solrのインストール
7.2-7.3 (ce, dxp); 7.4 dxp u60+
Solrは、Apache Luceneをベースに開発されたエンタープライズサーチプラットフォームとして人気があります。 信頼性、スケーラビリティ、フォールトトレラントに優れています。 詳しくは こちら です。
この説明では、 互換性のある Liferay のバージョン に対して Solr 8 をインストールすることを説明します。 Solr 7をインストールする場合、必要に応じてバージョン名を調整してください。
Solrを使用する際には、重要な制限があります。 インストールする前に Solrの制限事項 を読んでください。
互換性
パッチレベルごとの互換性のあるSolrとLiferayのバージョンに関する詳細な情報については、 検索エンジン互換性マトリクス を参照してください。
Solrコネクタのダウンロード
blacklist と connector の設定が完了して Solr is running になるまで Solr コネクターを実行中の Liferay にインストールしないでください。
まだSolrへのコネクタを取得していない場合。
-
起動中のLiferayで、コントロールパネル → マーケットプレイス → ストアに移動します。 サインインしてください。
-
アプリへのアクセス権を付与する。
-
Solr 8を検索し、Liferayのインストールに対応するアプリを選択します。
Liferay フレーバー Solrコネクタ名 Liferay Portal/Community Edition(ライフレイポータル/コミュニティエディション Liferay CE Connector to Solr 8 Liferay DXP Liferay Connector to Solr 8 -
アプリのランディングページにある「Free」ボタンをクリックします。
-
プロジェクトが存在する場合は選択し、存在しない場合は追加します。
-
条件に同意の上、 購入 をクリックします。
購入後、「過去バージョン」ページから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
-
App をクリックして、アプリの 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_ENTEPRISE_PERIOD_SEARCH_PERIOD_ENABLED=false
詳しくは、 Liferay Enterprise Searchの有効化 をご覧ください。
-
ブラックリストの作成 設定ファイル. 名称はLiferayのバージョンによって異なります。
Liferay 7.4の場合、以下のように作成します。
com.liferay.portal.bundle.blacklist.internal.configuration.BundleBlacklistConfiguration.config
Liferay 7.2、7.3の場合、以下のように作成します。
com.liferay.portal.bundle.blacklist.internal.BundleBlacklistConfiguration.config
-
お使いのLiferayのバージョンに合わせた設定を入力します。
Liferay 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 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のインストールと設定
Solr for Liferayのインストールと設定を行う。
-
互換性のある 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に再インデックスします。 グローバルメニューを開き、 [コントロールパネル] → [設定] → [検索] へ行きます。 Index Actions] ペインで、[Reindex Search Indexes] オプションの隣にある Execute をクリックします。
スペルチェック用のインデックスも再作成してください。
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 コネクタ設定リファレンス
設定ファイルを使用する以外に、システム設定を使用してSolr 8の設定を更新することができます。
以下は、デフォルトの設定と、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 Client Factory
basicAuthPassword="solr"
basicAuthUserName="solr"
defaultMaxConnectionsPerRoute="20"
maxTotalConnections="20"
設定ファイル: com.liferay.portal.search.solr8.configuration.SolrSSLSocketFactoryConfiguration.config
㊟ ←クリック
システム設定の入力です。 Solr 8 SSL Factory
keyStorePassword="secret"
keyStorePath="classpath:/keystore.jks"
keyStoreType="JKS"
trustStorePassword="secret"
trustStorePath="classpath:/truststore.jks"
trustStoreType="JKS"
verifyServerCertificate=B"true"
verifyServerName=B"true"