AEM AS A CLOUD SERVICEのクエリにSIM管理インデックスが選択されていません
Adobe Experience Manager as a Cloud Serviceでは、クエリが以前のインデックスを引き続き使用している間に、簡易インデックス管理(SIM)定義を正常にデプロイできます。 クエリプランナーは、クエリの制限、インデックス付きプロパティ、推定コストに基づいて、対象となるインデックスを評価します。 この問題を解決するには、デプロイメントとクエリ計画を確認し、includedPaths、queryPathsおよびインデックス ルールをクエリ要件に合わせ、Cloud Managerを使用して変更をデプロイし、インデックス作成が完了した後にクエリを検証します。
説明 description
環境
Adobe Experience Manager as a Cloud Serviceのインデックス管理機能の簡素化
問題/症状
簡易インデックス管理の定義をデプロイした後も、クエリでは、目的のSIM管理インデックスではなく、以前のインデックスを使用し続けます。
- クエリでは、
cqPageContentなどの意図されたインデックスの代わりに、cqPageLuceneなどの以前のインデックスを引き続き使用します。 - SIM管理インデックスはリポジトリに表示されますが、 クエリパフォーマンスツール では、関連するクエリ用に選択されません。
- インデックス定義には
includedPathsとqueryPathsが含まれていますが、クエリでは以前のインデックスが使用されます。 - 必要なクエリプロパティは、SIM管理のインデックスルールには含まれません。
- ログに特定のエラーメッセージは表示されません。
原因
クエリプランナーは、見積もりコストが最も低い適格インデックスを選択します。 SIMで管理されたインデックスがクエリパスまたは必要なプロパティをカバーしていない場合、またはその推定コストが前のインデックスよりも高い場合、クエリは前のインデックスを引き続き使用します。
解決策 resolution
インデックス選択をトラブルシューティングするには、次の手順に従います。
-
影響を受けるクエリを クエリパフォーマンスツール で実行し、「クエリを説明」出力を確認します。
- クエリが使用するインデックスを確認します。
- 目的のSIM管理インデックスがクエリプランで考慮されているかどうかを確認します。
- インデックス定義を更新した後、クエリ計画と比較に使用する見積もり費用を記録します。
-
SIMの定義が正しくデプロイされていることを確認します。
- プロジェクトのコードベースにSIM定義が含まれていることを確認します。
- Cloud Manager パイプラインが正常に完了したことを確認します。
- リポジトリブラウザーを使用して、生成されたインデックス定義(
/oak:index/<sim-index-name>など)が期待される設定で存在することを確認します。
-
インデックス定義のパス設定を確認します。
- インデックスに含める必要があるコンテンツが
includedPathsでカバーされていることを確認します。 queryPathsが、クエリで使用されるパス制限をカバーしていることを確認します。- インデックスに同じコンテンツ スコープのクエリを含める必要がある場合は、
includedPathsとqueryPathsに一致する値を使用します。 - メモ:
includedPathsはインデックス付きコンテンツ スコープを制御しますが、queryPathsはインデックスが一致するパス制限を持つクエリの対象となるかどうかを制御します。
- インデックスに含める必要があるコンテンツが
-
クエリに必要なインデックスルールとプロパティを確認します。
- クエリで使用される各プロパティが、適切なインデックスルールでインデックス付けされていることを確認します。
- クエリでそれらを使用する場合は、
jcr:content/cq:lastModified、excludeSearch、hideFromExternalUserなどのプロパティを確認します。 - 必要なプロパティが見つからない場合は、適切なインデックス ルールをSIM定義に追加し、Cloud Manager パイプラインを介して再デプロイします。
-
標準のCloud Manager パイプラインを使用して、更新されたインデックス定義をデプロイします。
- 更新されたインデックス定義をプロジェクトコードベースの一部としてパッケージ化します。
- パイプラインを実行し、インデックス作成またはインデックス再作成プロセスを完了させます。
- クエリを再度検証する前に、Cloud Manager ビルドページでインデックスステータスを確認します。
-
インデックス作成完了後にクエリの動作を検証します。
- クエリパフォーマンスツール で、影響を受けるクエリを再実行します。
- 「クエリの説明」出力で、目的のSIM管理インデックスが選択されていることを確認します。
- インパクトの大きいクエリの代表的なセットをテストします。
- 特に、タイトル、説明、コンテンツなどのフィールドが強化されたクエリの場合、移行前と移行後の結果とランキングを比較できます。
- Query Performance Toolを使用して、パフォーマンスのリグレッションを確認します。
-
新しいSIM管理インデックスを検証した後、古いインデックス定義をプロジェクトコードベースから削除します。
- リポジトリからインデックスノードを手動で削除しないでください。
- メモ:AEM as a Cloud Serviceが新しいバージョンを準備している間、ローリングのデプロイメント中に、古いインデックスバージョンと新しいインデックスバージョンを一時的に共存させることができます。
注意:
- ページ、DAM、監査インデックスにはSIMを使用することをお勧めします。 既存のインデックスが要件を満たし、引き続きサポートされている場合、移行は必須ではありません。
Audit EventやカスタムEmail Indexなどのカスタムクエリパスを持たないインデックスの場合、そのクエリをSIMに移行する予定の場合にのみ、移行設定にそれらを含めます。- 継続的なサポートと将来の互換性が必要な場合は、カスタムインデックスをSIMに移行します。