未在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管理索引。
- 查询继续使用以前的索引,如
cqPageLucene,而不是预期的索引,如cqPageContent。 - SIM管理的索引显示在存储库中,但 查询性能工具 没有为相关查询选择它。
- 索引定义包含
includedPaths和queryPaths,但查询仍使用上一个索引。 - 所需的查询属性未包含在SIM管理的索引规则中。
- 日志中未显示特定错误消息。
原因
查询规划者选择具有最低估计成本的合格索引。 如果SIM管理的索引不包含查询路径或所需属性,或其估计开销高于上一个索引,则查询将继续使用上一个索引。
解决方法 resolution
要对索引选择问题进行故障诊断,请执行以下步骤:
-
在 查询性能工具 中运行受影响的查询并查看Explain查询输出。
- 确认查询使用的索引。
- 确认查询计划是否考虑预定的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内部版本页面上的索引状态。
-
索引完成之后验证查询行为。
- 在 查询性能工具 中重新运行受影响的查询。
- 确认在Explain Query输出中选择了预期的SIM管理索引。
- 测试一组具有代表性的高影响力查询。
- 比较迁移前后的结果和排名,特别是对于具有已提升字段(如标题、描述和内容)的查询。
- 使用 查询性能工具 检查性能回归。
-
验证新的SIM管理的索引后,从项目代码库中移除过时的索引定义。
- 请勿从存储库中手动删除索引节点。
- 注意:在AEM as a Cloud Service准备新版本时,旧索引版本和新索引版本可以在滚动部署期间暂时共存。
注意:
- 建议将SIM卡用于页面、DAM和审核索引。 当现有索引满足您的要求并保持支持时,并不强制进行迁移。
- 对于没有自定义查询路径(如
Audit Event或自定义Email Index)的索引,仅当要将其查询迁移到SIM卡时,才应将其包含在迁移配置中。 - 当需要持续支持和未来兼容性时,将自定义索引迁移到SIM。
相关阅读
recommendation-more-help
experience-cloud-kcs-help-kbarticles