現在表示中:

MSRP について

MSRP を共通ストアとして使用するよう AEM Communities を設定すると、すべてのオーサーインスタンスとパブリッシュインスタンスから、同期もレプリケーションもおこなわずに、ユーザー生成コンテンツ(UGC)にアクセスできるようになります。

SRP オプションの特性推奨されるトポロジも参照してください。

要件

MongoDB 設定

MSRP の選択

ストレージ設定コンソールでは、デフォルトのストレージ設定を選択できます。この設定で、どの SRP の実装を使用するかを指定します。

オーサー環境でストレージ設定コンソールにアクセスするには:

  • グローバルナビゲーションから、ツール/コミュニティ/ストレージ設定を選択します。
  • MongoDB ストレージリソースプロバイダー (MSRP)」を選択します。
  • MongoDB 設定
    • mongoDB URI
      デフォルト:mongodb://localhost/?maxPoolSize=10&waitQueueMultiple=5&readPreference=secondaryPreferred
    • mongoDB データベース
      デフォルト:communities
    • mongoDB UGC コレクション
      デフォルト:content
    • mongoDB 添付ファイルコレクション
      デフォルト:attachments
  • SolrConfiguration
    • Zookeeper ホスト
      内部の Zookeeper を使用して Solr を実行する場合は、この値を空白のままにしておきます。そうではなく、外部の ZooKeeper を使用して SolrCloud モードで実行する場合は、この値を my.server.com:80 など、ZooKeeper の URI に設定します。
      デフォルト:空白
    • Solr URL
      デフォルト:http://127.0.0.1:8983/solr/
    • Solr コレクション
      デフォルト:collection1
  • 送信」を選択します。

注意:

mongoDB データベース(デフォルトの名前は communities)を、ノードストアまたはデータ(バイナリ)ストアで使用されているデータベースの名前に設定することはできません。AEM 6.2 のストレージ要素も参照してください。

MongoDB レプリカセット

実稼動環境では、レプリカセットをセットアップすることを強く推奨します。レプリカセットとは、マスタースレーブ型レプリケーションと自動フェイルオーバーを実装している MongoDB サーバーのクラスターです。

レプリカセットについて詳しくは、MongoDB の レプリケーションに関するドキュメントを参照してください。

レプリカセットの操作と、アプリケーションと MongoDB のインスタンスとの間の接続を定義する方法については、MongoDB の接続文字列の URI フォーマットに関するドキュメントを参照してください。

レプリカセットに接続するための URL の例

# Example url for :
#     servers "mongoserver1", "mongoserver2", "mongoserver3" 
#     replica set 'rs0'
# port numbers only necessary if not default port 27017
mongodb://mongoserver1:<mongoport1>,mongoserver2:<mongoport2>,mongoserver3:<mongoport3>/?replicaSet=rs0&maxPoolSize=100&waitQueueMultiple=50&readPreference=secondaryPreferred

Solr 設定

別々のコレクションを使用することで、1 つの Solr をノードストア(Oak)と共通ストア(MSRP)の間で共有できます。

Oak と MSRP のコレクションがどちらも高頻度で使用される場合は、パフォーマンス上の理由から 2 つ目の Solr をインストールすることもできます。

実稼動環境では、SolrCloud モードを使用すると、スタンドアロンモード(単一のローカルの Solr セットアップ)よりもパフォーマンスが向上します。

アップグレード

MSRP を使用して設定した以前のバージョンの AEM Communities からアップグレードする場合は、以下が必要です。

  1. 新しい Solr 設定ファイルのインストール
  2. AEM 6.2 Communities へのアップグレード
  3. MSRP のインデックスの再作成
      MSRP インデックス再作成ツールの節を参照してください。

SolrCloud モード

実稼動環境では SolrCloud モードを推奨します。SolrCloud モードで実行する場合は、多言語検索(MLS)をインストールする前に、SolrCloud をインストールして設定する必要があります。

SolrCloud の手順に従い、以下をインストールすることを推奨します。

  • 同じサーバー上の 3 つの SolrCloud ノード
  • 外部の Apache ZooKeeper

また、メモリ使用量とガベージコレクションを調整するために、JVM を設定することを推奨します。

JVM の設定例

JVM_OPTS="-server -Xmx2048m -XX:MaxPermSize=768M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Xloggc:../logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.awt.headless=true"  

SolrCloud セットアップコマンド

SolrCloud モードで実行する場合は、MLS をインストールする前に、以下の SolrCloud セットアップコマンドを理解して使用する必要があります。

1. 設定を ZooKeeper にアップロード

参考:
  https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities

使用方法:
  sh ./scripts/cloud-scripts/zkcli.sh \
    -cmd upconfig \
    -zkhost  server:port \
    -confname myconfig-name \
    -solrhome solr-home-path \
    -confdir config-dir

2. コレクションを作成

参考:
  https://cwiki.apache.org/confluence/display/solr/Solr+Start+Script+Reference#SolrStartScriptReference-Create

使用方法:
  ./bin/solr create \
    -c mycollection-name \
    -d config-dir \
    -n myconfig-name \
    -p port \
    -s number-of-shards \
    -rf number-of-replicas

3. コレクションを設定セットにリンク

コレクションを ZooKeeper にアップロードした設定にリンクします。

参考:
  https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities

使用方法:
  sh ./scripts/cloud-scripts/zkcli.sh \
    -cmd linkconfig \
    -zkhost server:port \
    -collection mycollection-name \
    -confname myconfig-name

標準の MLS と高度な MLS の比較

AEM Communities の多言語検索(MLS)は、英語を含め、サポートされるすべての言語にまたがる検索の質を向上させる目的で、Solr プラットフォーム用に構築された機能です。 

AEM Communities の MLS は、標準の MLS と高度な MLS のどちらかを利用できます。標準の MLS には Solr 設定だけが含まれ、プラグインやリソースファイルは含まれていません。高度な MLS は、より包括的なソリューションであり、Solr 設定に加えてプラグインと関連リソースを含んでいます。

標準の MLS には、以下の言語のコンテンツ検索の機能強化が含まれています。

  • 英語:派生語をマッチさせるためのステマーの向上
  • 日本語:日本語の半角文字のトークン化の向上

高度な MLS には、下の言語のコンテンツ検索の機能強化が含まれています。

  • 英語:ステマーをレマタイザーに交換
  • ドイツ語:デコンパウンダーを追加
  • フランス語:エリジオン処理を追加
  • 中国語(簡体):よりスマートなトークナイザーを追加
  • 様々な言語:ステマー、ストップワードリストおよびノーマライザーを追加

高度な MLS では、合計で以下の 33 の言語がサポートされます。

アラビア語 ドイツ語 ノルウェー語
ブルガリア語 ギリシャ語 ポーランド語
簡体字中国語 ハイチ語 ポルトガル語
中国語 (繁体) ヘブライ語 ルーマニア語
チェコ語 ハンガリー語 ロシア語
デンマーク語 インドネシア語 スロバキア語
オランダ語 イタリア語 スロベニア語
英語 日本語 スペイン語
エストニア語 韓国語 スウェーデン語
フィンランド語 ラトビア語 タイ語
フランス語 リトアニア語 トルコ語

AEM 6.1 Solr 検索、標準の MLS、高度な MLS の比較

注意:ここで言う AEM 6.1 とは、AEM 6.1 Communities FP3 以前を指します。

標準の MLS のインストール

標準の多言語検索(MLS)をサポートするには、MSRP コレクションについて、以下の 2 つの Solr の設定ファイルを変更する必要があります。

  • schema.xml
  • solrconfig.xml

通常、標準の MLS のファイルは AEM リポジトリから取得します。

一時的に、最新の標準の MLS のファイルを以下からダウンロードできます。

ダウンロード

ダウンロード

  1. Solr サーバーのバージョンに合った msrp-standard-solr パッケージをダウンロードします。
  2. zip ファイルの内容を、Solr がデプロイされているローカルサーバーに抽出します。
  3. スタンドアロンモードまたは SolrCloud モードのインストール手順に従います。

SolrCloud モード - 標準の MLS

  1. SolrCloud モードの Solr をインストールして設定します。
  2. 以下の手順で新しい設定を用意します。
    1. 新しい設定ディレクトリ(new-config-dir)を作成します。
         例:solr-install-dir/myconfig/
    2. 既存の Solr 設定ディレクトリの内容を new-config-dir にコピーします。
      • Solr4 の場合:solr-install-dir/example/solr/collection1/conf/* をコピー
      • Solr5 の場合:solr-install-dir/server/solr/configsets/data_driven_schema_configs/* をコピー
    3. ダウンロードした schema.xmlsolrconfig.xmlnew-config-dir にコピーして既存のファイルを上書きします。
  3. ZooKeeper に新しい設定をアップロードします。
  4. シャードの数、レプリカ数および設定名など、必要なパラメーターを設定してコレクションを作成します。
  5. 設定の名前をコレクション作成中に指定しなかった場合は、新しく作成したこのコレクションを ZooKeeper にアップロードした設定にリンクします。
  6. 新規インストールである場合を除き、MSRP インデックス再作成ツールを実行します。

スタンドアロンモード - 標準の MLS

  1. スタンドアロンモードの Solr をインストールします。
  2. Solr5 を実行している場合、以下のコマンドで collection1 を作成します(Solr4 と同様)。
    • ./bin/solr start
    • ./bin/solr create_core -c collection1 -d sample_techproducts_configs
  3. 例えば以下の Solr 設定ディレクトリに schema.xmlsolrconfig.xml にバックアップします。
    • Solr4 の場合:solr-install-dir/example/solr/collection1/conf/
    • Solr5 用に作成した場合:solr-install-dir/server/solr/collection1/conf/
  4. ダウンロードした schema.xmlsolrconfig.xml を同じディレクトリにコピーします。
  5. Solr を再起動します。
  6. 新規インストールである場合を除き、MSRP インデックス再作成ツールを実行します。

高度な MLS のインストール

高度な MLS をサポートするための MSRP コレクションについては、カスタムスキーマと Solr 設定に加え、新しい Solr プラグインが必要です。必要なアイテムがすべてダウンロード可能な zip ファイルにパッケージ化されています。さらに、Solr がスタンドアロンモードでデプロイされている場合に使用するインストールスクリプトが同梱されています。

高度な MLS を入手するには、ドキュメントのデプロイセクションの AEM の高度な MLS を参照してください。

SolrCloud モードまたはスタンドアロンモードのどちらかのインストールを開始するには:

  • AEM-SOLR-MLS zip アーカイブを Solr をホストしているサーバーにダウンロードします。
  • アーカイブを展開します。

SolrCloud モード - 高度な MLS

インストール手順 - 以下のとおり、Solr4 と Solr5 で少し違いがある点に注意してください。

  1. SolrCloud モードの Solr をインストールして設定します。
  2. 高度な MLS パッケージの内容をディスクに抽出します。以下の内容が含まれています。
    • schema.xml
    • solrconfig.xml
    • stopwords/ フォルダー
    • profiles/ フォルダー
    • extra-libs/ フォルダー
  3. 以下の手順で新しい設定を用意します。
    1. 新しい設定ディレクトリ(new-config-dir)を作成します。
      • 例えば、solr-install-dir/myconfig/ とします。
      • stopwords/ と lang/ というサブフォルダーを作成します。
    2. 既存の Solr new-config-dir
      • Solr4 の場合:solr-install-dir/example/solr/collection1/conf/* をコピー
      • Solr5 の場合:solr-install-dir/server/solr/configsets/data_driven_schema_configs/* をコピー
    3. 抽出した schema.xmlsolrconfig.xmlnew-config-dir にコピーして既存のファイルを上書きします。
    4. Solr5 の場合:solr_install_dir/server/solr/configsets/sample_techproducts_configs/conf/lang/*.txt" を new-config-dir/lang/ にコピー
    5. 抽出した stopwords/ フォルダーを new-config-dir にコピーします。
      • コピーした結果は new-config-dir/stopwords/*.txt となります。
  4. ZooKeeper に新しい設定をアップロードします。
  5. 以下のとおり、新しい profiles/ フォルダーをコピーします。
    • Solr4 の場合:各ノードの resources/ フォルダーにコピーします。
    • Solr5 の場合:Solr の各インストールディレクトリの server/resources/ フォルダーにコピーします。すべてのノードが同じ Solr インストールディレクトリにある場合、このステップは一度だけ実行します。 
  6. lib/ フォルダーを、SolrCloud の各ノードの(solr.xml が含まれている)solr-home ディレクトリ内に作成します。jar ファイルを以下の場所から各ノードの新しい lib/ フォルダーにコピーします。
    • 高度な MLS のパッケージから抽出した extra-libs/
    • solr-install-dir/contrib/extraction/lib/*.jar
    • solr-install-dir/dist/solr-cell-*.jar
    • solr-install-dir/contrib/clustering/lib/*.jar
    • solr-install-dir/dist/solr-clustering-*.jar
    • solr-install-dir/contrib/langid/lib/*.jar
    • solr-install-dir/dist/solr-langid-*.jar
    • solr-install-dir/contrib/velocity/lib/*.jar
    • solr-install-dir/dist/solr-velocity-*.jar
    • solr-install-dir/contrib/analysis-extras/lib/*.jar
    • solr-install-dir/contrib/analysis-extras/lucene-libs/*.jar
  7. シャードの数、レプリカ数および設定名など、必要なパラメーターを設定してコレクションを作成します。
  8. 設定の名前をコレクション作成中に指定しなかった場合は、新しく作成したこのコレクションを ZooKeeper にアップロードした設定にリンクします。
  9. 新規インストールである場合を除き、MSRP インデックス再作成ツールを実行します。

スタンドアロンモード - 高度な MLS

高度な MLS のパッケージには、インストールスクリプトが同梱されています。

スタンドアロンの Solr サーバーをホストしているサーバーにパッケージの内容を抽出したら、必要なリソースと設定ファイルをインストールするために、インストールスクリプトを実行します。

  • スタンドアロンモードの Solr をインストールします。
  • Solr5 を実行している場合、以下のコマンドで collection1 を作成します(Solr4 と同様)。
    • ./bin/solr start
    • ./bin/solr create_core -c collection1 -d sample_techproducts_configs
  • インストールスクリプトを実行:Install [-v 4|5] [-d solrhome] [-c collectionpath]
    各オプションの説明:
    • -d solrhome
      Solr インストールディレクトリ
    • -c collectionpath
      Solr のコレクションのパス
    • --help
      コマンドラインオプションを表示
    • -v [4|5]
      Solr のバージョンを設定
  • Solr 4.10.4 の場合の例:
    • Install.bat -v 4 -d c:/solr-4.10.4 -c c:/solr-4.10.4/example/solr/collection1
  • Solr 5.4.0 の場合の例:
    • Install.sh -v 5 -d /tmp/solr-5.4.0 -c /tmp/solr-5.4.0/server/solr/collection1

注意

  • 「.orig」を付加することで、新しいバージョンをインストールする前に、インストールスクリプトによって schema.xml と solrconfig.xml がバックアップされます。

solrconfig.xml について

solrconfig.xml は、自動コミットの間隔と検索表示を制御するファイルであり、テストと調整が必要です。

<autoCommit>:デフォルトでは、AutoCommit(安定ストレージへのハードコミット)の間隔は、15 秒に設定されています。検索表示は、デフォルトではコミット前のインデックスを使用するよう設定されています。

コミットによる変更が反映された更新済みのインデックスを使用するよう検索を変更するには、含まれている <openSearcher> を true に変更します。

<autoSoftCommit>:「ソフト」コミットを使用すると、変更は表示されます(インデックスが更新されます)が、変更は安定ストレージに同期(ハードコミット)されません。これによりパフォーマンスが向上します。デフォルトでは、含まれている <maxTime> が -1 に設定されており、<autoSoftCommit> は無効になっています。

設定の公開

すべてのオーサーインスタンスとパブリッシュインスタンスで、MSRP が共通ストアとして指定されている必要があります。

パブリッシュ環境で同一の設定を使用できるようにするには:

  • オーサー環境で、以下の設定をします。
    • メインメニューからツール/運営/レプリケーションに移動します。
    • ツリーをアクティベート」を選択します。
    • 開始パス:
      • /etc/socialconfig/srpc/ を参照します。
    • アクティベート」を選択します。

ユーザーデータの管理

パブリッシュ環境で頻繁に入力されるユーザー、ユーザープロファイルおよびユーザーグループについては、以下を参照してください。

MSRP インデックス再作成ツール

新しい設定ファイルをインストールしたり、Solr のインデックスを修復するときは、MSRP 用の Solr のインデックス再作成用のコマンドラインツールを使用できます。

このツールでは、MongoDB が MSRP の情報源になるので、バックアップを取るときは MongoDB だけで十分です。

UGC ツリー全体のインデックスを再作成するか、またはパスデータパラメーターで指定したとおりに、特定のサブツリーのインデックスだけを再作成することもできます。

batchSize データパラメーターで、1 回の操作でどれだけの数の UGC レコードのインデックスを再作成するかを制御します。この数値は、メモリとパフォーマンスのトレードオフを考慮して指定します。

適切なデフォルト値は 5000 と考えられます。

  • メモリが問題の場合は、これより小さい値を指定します。
  • 速度が問題の場合は、速度を向上させるために、これより大きな値を指定します。

cURL コマンドを使用した MSRP インデックス再作成ツールの実行

以下に示す cURL コマンドは、MSRP に格納されている UGC のインデックス再作成の HTTP リクエストに必要なコマンドです。 

基本的な形式は以下のとおりです。

      cURL  -u signin  -d data  reindex-url

signin = administrator-id:password
  例:admin:admin

data = "batchSize=size&path=path"

size = 1 回の操作でインデックス再作成をおこなう UGC エントリの数
  現在、サポート対象は MSRP のみ:
    /content/usergenerated/asi/mongo/

path = インデックスを再作成する UGC のツリーのルートの場所
  - すべての UGC のインデックスを再作成するには、次のノードの asipath プロパティの値を指定します。
     /etc/socialconfig/srpc/defaultconfiguration
  - 一部の UGC に限定するには、asipath のサブツリーを指定します。

reindex-url = SRP のインデックスを再作成するためのエンドポイント
  現在、サポート対象は MSRP のみ:
        http://localhost:4503/services/social/datastore/mongo/reindex

MSRP インデックス再作成の例

curl -s -u admin:admin -d 'batchSize=10000&path=/content/usergenerated/asi/mongo/' http://localhost:4503/services/social/datastore/mongo/reindex

MSRP のデモの実行方法

MSRP をデモ用に設定するには、MongoDB をデモ用に設定する方法を参照してください。

トラブルシューティング

UGC が MongoDB で表示されない

ストレージオプションの設定を確認し、MSRP がデフォルトのプロバイダーに設定されているかを確認してください。デフォルトでは、ストレージリソースプロバイダーは JSRP です。

すべての AEM オーサーインスタンスとパブリッシュインスタンスで、ストレージ設定コンソールに再度移動するか、または以下の手順で AEM リポジトリを確認してください。

  • JCR で、/etc/socialconfig
    • srpc ノードが含まれていない場合は、ストレージプロバイダーが JSRP であることを示します。
    • srpc ノードが存在し、ノード defaultconfiguration が含まれている場合は、defaultconfiguration のプロパティで MSRP がデフォルトのプロバイダーに設定されている必要があります。

アップグレード後に UGC が表示されない

既存の AEM Communities 6.0 サイトからアップグレードする場合は、AEM Communities 6.2 にアップグレードした後、既存の UGC を SRP API が求める構造に合わせて変換する必要があります。

そのためのオープンソースツールが GitHub で入手できます。

この移行ツールをカスタマイズし、以前のバージョンの AEM ソーシャルコミュニティの UGC をエクスポートして AEM Communities 6.1 以降にインポートすることが可能です。

エラー - undefined field provider_id

以下のエラーがログに表示された場合は、Solr スキーマファイルが適切に設定されていません。

JsonMappingException: undefined field provider_id

Caused by: com.fasterxml.jackson.databind.JsonMappingException: undefined field provider_id
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:129)
at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1819)
at com.adobe.cq.social.scf.core.BaseSocialComponent.toJSONString(BaseSocialComponent.java:196)
... 124 common frames omitted

このエラーを解決するには、基本的な Solr の設定をしたときに、以下を実行したかを確認してください。

  • XML 設定ファイルを正しい Solr の場所にコピーした
  • 新しい設定ファイルを既存のファイルと置き換えた後に Solr を再起動した

MongoDB へのセキュア接続が失敗する

MongoDB サーバーへのセキュア接続の試みが、クラス定義が見つからないという理由で失敗する場合は、MongoDB ドライババンドル mongo-java-driver(公開されている maven リポジトリで入手可能)を更新する必要があります。

  1. ドライバを
    http://search.maven.org/#artifactdetails%7Corg.mongodb%7Cmongo-java-driver%7C2.13.2%7Cjar
    からダウンロードします(バージョン 2.13.2 以降)。
  2. バンドルを AEM インスタンスの「crx-quickstart/install」フォルダーにコピーします。
  3. AEM インスタンスを再起動します。

リソース

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー