2ノードクラスタへのSOLRのインストール

Liferayサポートは、特定のサードパーティ製品を他の製品よりも推奨したり、推奨したりすることはありません。 Liferayは、これらの製品に関して、ここに記載されている指示や参照されている指示には一切責任を負いません。 これらの原則の実施は、すべて加入者の責任となります。

2ノードクラスタでSolrを設定し、Liferayのインデックス作成方法をSolrに切り替えるための入門ガイドです。

Solr は Lucene Java 検索ライブラリをベースにしたオープンソースのエンタープライズ検索サーバで、XML/HTTP および JSON API、ヒットハイライト、ファセット検索、キャッシング、レプリケーション、Web 管理インターフェイスを備えています。 Solrは、管理者がカスタムコードを書くことなく、構造化されたデータを検索することができます。

長所

  • 全体的に、SOLRはインデックスのクラスタリングにおいて最高のパフォーマンスを発揮します。
  • SOLRを使用することで、Liferayノードからインデックス作成の負担を軽減します。
  • 集中インデックスリポジトリ
  • Solrには、カスタマイズをより簡単にするための設定オプションが増えています。

欠点

  • Solrボックスがダウンすると、すべてのノードにインデックスがない状態になります(ただし、Solrに高可用性を与える分散/レプリケーションのセットアップがあります)。 詳細はこちらをご覧ください。 Lucidworks ドキュメント.
  • 長時間の設定・設定

決議

ユーザーは3つのポータルインスタンスを設定します。

  • Solr Server-これはLiferayノードのインデックス作成を行うノードです。
  • ノード1-このノードはLiferayを実行しており、ノード2とクラスタ化されています。
  • ノード 2-このノードはLiferayを実行しており、ノード1とクラスタ化されています。

Solrノードの設定

  1. Tomcat 6 zip をダウンロードして解凍します。
  2. JAVA_HOME環境 変数をJDKがインストールされている場所に設定します。
  3. Solr のzipをダウンロードして、便利な場所に解凍します。
  4. $SOLR_HOME ディレクトリを作成します。 apache-solr-1.4.0.0\example "に移動し、"solr "フォルダの内容を $SOLR_HOMEにコピーします。
  5. $APACHE-SOLR/dist/apache-solr-${solr.version}.warにあるSolrフォルダから、 $TOMCAT_HOME/webappsにWARファイルをコピーします; ${solr.version} はSolrのバージョン番号、つまり1.4.0を表します。

    .war ファイルの名前を "solr.war" のような簡単なものに変更してください。

  6. $TOMCAT_AS_DIR/bin/catalina.batに以下の行を追加。

    set JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home="C:\Program Files\Solr"

    注意: Solrのインスタンスを1つしか実行していないので、これは動作します。 同じTomcatサーバー上の複数のインスタンスの場合、ユーザーはTomcat Context XMLファイルを作成する必要があります。

  7. トムキャットを実行します。 エラーがない場合は、http://localhost:8080/solr/admin を参照し、Solr Admin ページが正しく表示されていることを確認してください。

    注意: URL の "solr" の部分は、.war ファイルの名前を指定したものになります。solr01.PNG

ノード1の設定

  1. データベースをインストールし、リモート接続ができるようにMySQLを設定します。
  2. Liferayバンドルをダウンロードしてください。
  3. $LIFERAY_HOME/data/ にある lucene フォルダを削除して、ポータルが Solr を指すようにします。
  4. portal-ext.propertiesファイルを適切なJDBC設定で設定します。
    1. 情報提供のために、このプロパティを追加することができます。 web.server.display.node=true は、現在ログインしているノードを表示します。
  5. Marketplaceから適切なSolrプラグインをダウンロードしてください。 適切なポータルのバージョンに合わせて、正しいバージョンをダウンロードしてください。 たとえば、Portal 6.1 GA2のユーザーは、 Liferay Solr Search Engineをダウンロードする必要があります。 新しいポータルバージョンのユーザーは、SOLR 3またはSOLR 4のいずれかをダウンロードする必要があります。
  6. .war アーカイブを開いて、 $SOLR_WAR\WEB-INF\classesMETA-INFにあるファイル、solr-spring.xmlを編集します。
    1. Solrサーバの場所を設定するビーンクラスを探してください。 こんな感じになるはずです。
      <bean class="com.liferay.portal.spring.context.PortletBeanFactoryPostProcessor" />
      <bean id="solrServer" class="com.liferay.portal.search.solr.server.BasicAuthSolrServer">
      <constructor-arg type="java.lang.String" value="http://localhost:8080/solr/" />
    2. $SOLR_HOME が設定されている場所を指すように値を変更します。 これは次のように表示されます: http://$IP_OF_SOLR_SERVER:8080/solr/。
  7. $SOLR_WAR\WEB-INF\confにあるSchemaをコピーして、Solrの $SOLR_HOME/conf(confディレクトリを作る必要があるかもしれません)に配置します。 これでSolrを起動できるようになりました。
  8. 編集したSolrプラグインの.warファイルをコピーし、Deployフォルダに配置します。
  9. Node 1 Tomcat Serverを起動します。

ノード2の設定

  1. LiferayをダウンロードしてTomcatサーバにインストールします(バンドルを使用する場合があります
  2. ノード1のデータベースに接続するために、適切なJDBC設定でportal-ext.propertiesファイルを設定します。 これについての詳細は、 クラスタ環境へのLiferayポータルのインストールを参照してください。
  3. ノード2を起動します。
  4. 既にノード1にデプロイされている修正済みのSolr .warファイルをデプロイします。

SOLRのテスト

両方のノードでLiferayを起動します。 Solrが正しく設定されているかどうかを確認する前に、両方とも正しく起動していることを確認してください。

ユーザーの作成

Solrをテストする簡単な方法は、ノード1にユーザを作成し、Node2に変更が反映されているかどうかを確認することです。 両方の方法を確認することを忘れないでください。

ノード2に新しいユーザーが見つかれば、Solrの設定に成功したことになります。

wikiを作成する

Solrをテストするもう一つの方法は、Liferayでwikiを作成し、Solrの管理コンソールから検索できるかどうかを確認することです。

  1. 例えば、"chocolate "という名前のwikiを作成し、本文に "chocolate "を入れ、最後に "chocolate "というタグを追加します。
  2. Solrの管理画面に移動します。
  3. "チョコレート "で検索solr02.PNG
  4. Solrが正しく設定されていれば、作成したwikiで検索結果が表示されるはずです。 solr03.PNG

期待される行動

各Liferayノードは、必要に応じて検索インデックスを更新するために、検索エンジンにリクエストを送信します。 これらの更新は、検索エンジンが独立してキューに入れて自動的に処理されます。

ここでは、Solrがインデックスに変更を加えた例を示します。

solr04.PNG

追加情報

Liferay Portal のクラスタ環境の設定の詳細については、 クラスタ環境への Liferay Portal のインストールを参照してください。

よくある質問

  1. なぜ別のアプリケーションサーバーにSolrをインストールする必要があるのですか? Liferayと併用してインストールすることはできないのでしょうか?

    理論的には はい、しかし、目標はLiferayのインストールのための処理を解放するために検索インデックスを別のボックスにオフロードすることであるため、Solrを使用する目的を打ち破っています。

  2. SolrException.Bad Request" エラーが発生するのはなぜですか?

    おそらく、Liferay Solrプラグイン.warのSchema.xmlは ではなく で、 $SOLR_HOME/confに追加されています。

  3. SolrException.見つかりませんでした」というエラーが出るのはなぜですか?

    Solr-Spring.xml内のSolrホームのURLが間違っていた可能性が高いです。

  4. Luceneから移行するには?

    上記の手順を実行して、インデックスを再作成するだけです(特別な「移行」の手順はありません)。 再インデックスに関しては

  5. 再インデックス化にはどのくらいの時間がかかりますか?

    それは多くの要因に依存します:再インデックス化されるデータのサイズ、SolrサーバーのJVM設定とアプリケーション構成、そしてSolrインスタンスのデプロイメントタイプ(シングルノードかSolrCloudか)です。 デフォルトの Lucene エンジンを使用して完全なポータルを再インデックス化するのにかかる通常の時間は、大まかな推定値を提供することができます。
    Solr のパフォーマンスについての詳細な情報はこちらを参照してください: https://wiki.apache.org/solr/SolrPerformanceFactors

  6. 演出を落とさずに再インデックスする方法はないのでしょうか?

    そうですね。 LiferayのSolrプラグインとSolrサーバーの両方が適切に設定されている限り、稼働中のLiferayサーバー上でSolrに切り替えることはシームレスなプロセスであり、本番サーバーをダウンさせる必要はありません。

  7. 再インデックス化が行われている間、私のポータルはどうなりますか?

    デフォルトの Lucene エンジンと Solr サーバーの間には、Liferay ポータルの再インデックス作成時の可用性に違いはありません。 そのため、サーバーの負荷が最も低い時間帯にフルサーバーの再インデックスをスケジュールするのが良いでしょう。

  8. 他の環境でも動作しますか?

    Linux で JBoss を使用して同じプロセスを見るには、 をクリックしてください.

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています