未在AEM as a Cloud Service中为查询选择SIM管理的索引

在Adobe Experience Manager as a Cloud Service中,当查询继续使用以前的索引时,可以成功部署简化的索引管理(SIM)定义。 查询规划者根据查询限制、索引属性和估计的成本评估符合条件的索引。 要解决此问题,请验证部署和查询计划,使includedPathsqueryPaths和索引规则与查询要求保持一致,通过Cloud Manager部署更改,并在索引完成之后验证查询。

描述 description

环境

带有简化索引管理的Adobe Experience Manager as a Cloud Service

问题/症状

部署简化的索引管理定义后,查询将继续使用上一个索引,而不是预期的SIM管理索引。

  • 查询继续使用以前的索引,如cqPageLucene,而不是预期的索引,如cqPageContent
  • SIM管理的索引显示在存储库中,但 查询性能工具 没有为相关查询选择它。
  • 索引定义包含includedPathsqueryPaths,但查询仍使用上一个索引。
  • 所需的查询属性未包含在SIM管理的索引规则中。
  • 日志中未显示特定错误消息。

原因

查询规划者选择具有最低估计成本的合格索引。 如果SIM管理的索引不包含查询路径或所需属性,或其估计开销高于上一个索引,则查询将继续使用上一个索引。

解决方法 resolution

要对索引选择问题进行故障诊断,请执行以下步骤:

  1. 查询性能工具 中运行受影响的查询并查看Explain查询输出。

    • 确认查询使用的索引。
    • 确认查询计划是否考虑预定的SIM管理索引。
    • 在更新索引定义后,记录查询计划和估计成本以进行比较。
  2. 确认SIM卡定义已正确部署。

    • 验证SIM定义是否包含在项目代码库中。
    • 确认 Cloud Manager 管道已成功完成。
    • 使用 存储库浏览器 验证生成的索引定义(如/oak:index/<sim-index-name>)是否按预期配置存在。
  3. 查看索引定义中的路径配置。

    • 确认includedPaths涵盖索引应包含的内容。
    • 确认queryPaths涵盖查询使用的路径限制。
    • 当索引应包含并提供相同内容范围的查询时,为includedPathsqueryPaths使用匹配值。
    • 注意: includedPaths控制索引的内容范围,而queryPaths影响索引是否适用于具有匹配路径限制的查询。
  4. 查看查询所需的索引规则和属性。

    • 确认查询使用的每个属性都已在相应的索引规则中编入索引。
    • 当查询使用属性(如jcr:content/cq:lastModifiedexcludeSearchhideFromExternalUser)时,检查这些属性。
    • 如果缺少所需的属性,请将相应的索引规则添加到SIM定义中,然后通过 Cloud Manager 管道重新部署它。
  5. 通过标准 Cloud Manager 管道部署更新的索引定义。

    • 将更新的索引定义打包为项目代码库的一部分。
    • 运行管道并允许索引构建或重新索引过程完成。
    • 在再次验证查询之前,请查看Cloud Manager内部版本页面上的索引状态。
  6. 索引完成之后验证查询行为。

    • 查询性能工具 中重新运行受影响的查询。
    • 确认在Explain Query输出中选择了预期的SIM管理索引。
    • 测试一组具有代表性的高影响力查询。
    • 比较迁移前后的结果和排名,特别是对于具有已提升字段(如标题、描述和内容)的查询。
    • 使用 查询性能工具 检查性能回归。
  7. 验证新的SIM管理的索引后,从项目代码库中移除过时的索引定义。

    • 请勿从存储库中手动删除索引节点。
    • 注意:在AEM as a Cloud Service准备新版本时,旧索引版本和新索引版本可以在滚动部署期间暂时共存。

注意:

  • 建议将SIM卡用于页面、DAM和审核索引。 当现有索引满足您的要求并保持支持时,并不强制进行迁移。
  • 对于没有自定义查询路径(如Audit Event或自定义Email Index)的索引,仅当要将其查询迁移到SIM卡时,才应将其包含在迁移配置中。
  • 当需要持续支持和未来兼容性时,将自定义索引迁移到SIM。

相关阅读

recommendation-more-help
experience-cloud-kcs-help-kbarticles