Show Menu
トピック×

コンテンツの検索とインデックス作成

Cloud ServiceとしてのAEMの変更点

AEMをCloud Serviceとして使用すると、AdobeはAEMインスタンス中心モデルから、n-x AEMコンテナを持つサービスベースの表示に移行し、Cloud ManagerのCI/CDパイプラインによって駆動されます。 単一のAEMインスタンスでインデックスを設定および保守する代わりに、インデックス設定を展開の前に指定する必要があります。 本番環境での設定の変更は、CI/CDのポリシーを明確に破っています。 インデックスの変更についても同じことが言えます。システムの安定性とパフォーマンスに影響を及ぼす可能性があるのは、指定しない場合は、実稼働環境に移行する前にテストおよび再インデックスを実行する必要があるからです。
AEM 6.5以前のバージョンと比較した主な変更点のリストを以下に示します。
  1. 1つのAEMインスタンスのインデックスマネージャにアクセスできなくなり、インデックスのデバッグ、構成、または維持ができなくなります。 ローカル開発およびオンプレムデプロイメントにのみ使用されます。
  2. 1つのAEMインスタンスのインデックスを変更したり、整合性チェックや再インデックスについて心配する必要はありません。
  3. 一般に、Cloud ManagerのCI/CDパイプラインの品質の高いゲートウェイを迂回し、実稼働環境のビジネスKPIに影響を与えないように、インデックスの変更は実稼働環境に移行する前に開始されます。
  4. 実稼働環境での検索パフォーマンスを含むすべての関連指標は、検索とインデックスのトピックの全体的な表示を提供するために、実行時にお客様が利用できます。
  5. お客様は、ニーズに応じてアラートを設定できます。
  6. SREはシステムの正常性を24時間365日監視しており、必要に応じて早期に対処する予定です。
  7. インデックスの構成は、配置を介して変更されます。 インデックス定義の変更は、他のコンテンツの変更と同様に設定されます。
  8. AEMのCloud Serviceとしての高度なレベルでは、 Blue-Green導入モデルが導入され 、2組のインデックスが存在します。1つは古いバージョン(青)用のセット、もう1つは新しいバージョン(緑)用のセットです。
  9. インデックス作成ジョブがCloud Managerのビルドページで完了したかどうかを確認でき、新しいバージョンでトラフィックを受信する準備ができたら通知を受け取ります。
  10. 制限事項:現在、AEM上でのCloud Serviceとしてのインデックス管理は、lucene型のインデックスに対してのみサポートされています。

使用方法

インデックスの定義は、次の3つの使用例で構成できます。
  1. 新しい顧客インデックス定義の追加
  2. 既存のインデックス定義を更新しています。 これは、既存のインデックス定義の新しいバージョンを追加することを意味します
  3. 冗長または古い既存のインデックスを削除しています。
上記のポイント1と2の両方について、それぞれのCloud Managerリリーススケジュールで、カスタムコードベースの一部として新しいインデックス定義を作成する必要があります。 詳しくは、「AEMへの デプロイ」のCloud Serviceドキュメントを参照してください

新しいインデックス定義の準備

次の命名パターンに従って、実際のインデックス定義を含む新しいインデックス定義パッケージを準備する必要があります。
<indexName>[-<productVersion>]-custom-<customVersion>
その後は下に入る必要があ ui.apps/src/main/content/jcr_root る 現在、サブルートフォルダーはサポートされていません。
上記のサンプルのパッケージは、としてビルドされ com.adobe.granite:new-index-content:zip:1.0.0-SNAPSHOT ます。

索引定義の配置

Jackrabbit Filevault Mavenパッケージプラグインバージョン 1.1.0 には既知の問題があり、のモジュール oak:index に追加できません <packageType>application</packageType> 。 この問題に対処するには、バージョン 1.0.4を使用してください
インデックス定義は、カスタムおよびバージョン付きとしてマークされるようになりました。
  • インデックス定義自体(例 /oak:index/ntBaseLucene-custom-1 )
したがって、インデックスを展開するには、インデックス定義( /oak:index/definitionname )をGitおよびCloud Managerの展開プロセス ui.apps 経由で配信する必要があります。
新しいインデックス定義を追加したら、新しいアプリケーションをCloud Managerを使用してデプロイする必要があります。 配置を開始すると、2つのジョブが開始され、それぞれMongoDBとAzure Segment Storeに作成者用と発行用のインデックス定義を追加(および必要に応じて結合)します。 Blue-Greenスイッチが発生する前に、基になるリポジトリのインデックスが新しいインデックス定義で再作成されています。
AEMをCloud Serviceとして使用する場合に必要なパッケージ構造の詳細については、「ドキュメント AEMプロジェクト構造」を参照してください。

青 — 緑の導入を使用したインデックス管理

インデックス管理とは

インデックス管理は、インデックスの追加、削除、変更に関するものです。 インデックスの 定義の変更は高速ですが 、変更を適用する(「インデックスの作成」、または既存のインデックスの場合は「インデックスの再構築」と呼ばれる)には時間が必要です。 即時ではありません。インデックスを作成するデータをリポジトリでスキャンする必要があります。

Blue-Green導入とは

青 — 緑の導入は、ダウンタイムを短縮できます。 また、ダウンタイムをゼロにするアップグレードも可能で、高速なロールバックが可能です。 アプリケーションの古いバージョン(青)は、アプリケーションの新しいバージョン(緑)と同時に実行されます。

読み取り専用領域と読み取り/書き込み可能領域

リポジトリの特定の領域(リポジトリの読み取り専用の部分)は、古い(青い)バージョンと新しい(緑の)バージョンで異なる場合があります。 リポジトリの読み取り専用領域は、通常、「 /app 」と「 /libs 」です。 次の例では、読み取り専用領域に斜体を使用し、読み取り/書き込み可能領域に太字を使用します。
  • /
  • /apps(読み取り専用)
  • /content
  • /libs (読み取り専用)
  • /oak:index
  • /oak:index/acme.
  • /jcr:system
  • /system
  • /var
リポジトリの読み取り/書き込み領域は、アプリケーションのすべてのバージョン間で共有されますが、アプリケーションの各バージョンには、との固有のセットが /apps あり /libs ます。

Blue-Green展開を使用しないインデックス管理

開発中、またはオンプレミスインストールを使用する場合は、インデックスを実行時に追加、削除または変更できます。 インデックスは、使用可能になるとすぐに使用されます。 まだ古いバージョンのアプリケーションでインデックスを使用しないはずの場合は、通常、予定されたダウンタイム中にインデックスが構築されます。 インデックスの削除時や、既存のインデックスの変更時にも同じことが起こります。 インデックスを削除すると、削除されるとすぐに使用できなくなります。

Blue-Green展開によるインデックス管理

青緑色の導入では、ダウンタイムは発生しません。 ただし、インデックス管理の場合は、インデックスが特定のバージョンのアプリケーションでのみ使用される必要があります。 例えば、アプリケーションのバージョン2でインデックスを追加する場合、まだアプリケーションのバージョン1でインデックスを使用したくないとします。 逆の場合は、インデックスが削除されます。バージョン2で削除したインデックスは、バージョン1でも必要です。 インデックス定義を変更する場合、古いバージョンのインデックスをバージョン1でのみ使用し、新しいバージョンのインデックスをバージョン2でのみ使用します。
次の表に、5つのインデックス定義を示します。index cqPageLucene は両方のバージョンで使用され、index damAssetLucene-custom-1 はバージョン2でのみ使用されます。
<indexName>-custom-<customerVersionNumber> は、AEMが既存のインデックスの代わりとしてマークするためのCloud Serviceとして必要です。
索引
標準インデックス
バージョン1で使用
バージョン2で使用
/oak:index/damAssetLucene
はい
はい
不可
/oak:index/damAssetLucene-custom-1
○(カスタマイズ)
不可
/oak:index/acme.product-custom-1
不可
不可
/oak:index/acme.product-custom-2
不可
不可
/oak:index/cqPageLucene
はい
はい
バージョン番号は、インデックスが変更されるたびに増加します。 製品自体のインデックス名と衝突するカスタムインデックス名を回避するには、カスタムインデックスと、初期設定のインデックスに対する変更をで終える必要があり -custom-<number> ます。

既製のインデックスの変更

Adobeが「damAssetLucene」や「cqPageLucene」のような既成のインデックスを変更すると、またはという名前の新しいインデックスが作成されます。また、インデックスが既にカスタマイズされている場合は、次のように、カスタマイズされたインデックス定義が既成のインデックスの変更と結合されます。 damAssetLucene-2 cqPageLucene-2 変更のマージは自動的に行われます。 つまり、あらかじめ用意されているインデックスが変更された場合、何もする必要はありません。 ただし、後でインデックスを再びカスタマイズすることは可能です。
索引
標準インデックス
バージョン2で使用
バージョン3で使用
/oak:index/damAssetLucene-custom-1
○(カスタマイズ)
はい
不可
/oak:index/damAssetLucene-2-custom-1
はい(damAssetLucene-custom-1およびdamAssetLucene-2から自動的に結合)
不可
/oak:index/cqPageLucene
はい
はい
不可
/oak:index/cqPageLucene-2
はい
不可

制限事項

インデックス管理は、現在、タイプのインデックスに対してのみサポートされて lucene います。

インデックスの削除

新しいバージョンのアプリケーションでインデックスを削除する場合は、空のインデックス(インデックスを作成するデータのないインデックス)を新しい名前で定義できます。 例えば、名前を付けることができ /oak:index/acme.product-custom-3 ます。 これにより、インデックスが置き換えられ /oak:index/acme.product-custom-2 ます。 システム /oak:index/acme.product-custom-2 が削除した後は、空のインデックスも削除 /oak:index/acme.product-custom-3 できます。

インデックスの追加

新しいバージョンのアプリケーション以降で使用する「/oak:index/acme.product-custom-1」という名前のインデックスを追加するには、インデックスを次のように設定する必要があります。
acme.product-1-custom-1
これは、インデックス名の前にカスタム識別子を付け、その後にドット( . )を付けることで機能します。 識別子の長さは2 ~ 5文字です。
上記のように、これにより、新しいバージョンのアプリケーションでのみインデックスが使用されます。

インデックスの変更

既存のインデックスを変更する場合は、変更したインデックス定義を使用して新しいインデックスを追加する必要があります。 例えば、既存のインデックス「/oak:index/acme.product-custom-1」が変更されているとします。 古いインデックスは下に、新しいインデックス /oak:index/acme.product-custom-1 は下に格納され /oak:index/acme.product-custom-2 ます。
アプリケーションの古いバージョンでは、次の設定を使用します。
/oak:index/acme.product-custom-1
新しいバージョンのアプリケーションでは、次の(変更された)設定が使用されます。
/oak:index/acme.product-custom-2

インデックスの可用性/フォルト・トレランス

インデックスの破損や予期しないイベントが発生した場合は、クエリに応答するためのフォールバックインデックスが使用できるので、非常に重要な機能の重複インデックスを作成することをお勧めします(前述のインデックスの命名規則を考慮)。