传入链接不显示Adobe Experience Manager中的所有链接页面
如果Adobe Experience Manager中的传入链接视图中缺少某些页面,则问题可能是由深度嵌套链接节点或自定义索引配置造成的。 本文介绍如何通过调整Lucene索引深度、恢复自定义设置或测试高级配置选项来解决此问题。
描述 description
环境
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- Adobe Experience Manager (AEM) 6.5
问题/症状
- 传入链接显示数量很少或未更改,即使有新引用。
- 全文查询返回的结果比“引用”选项卡中显示的多。
- 在共享环境中可能会出现此问题,但在全新的本地开箱即用(OOTB)设置中则不会出现此问题。
解决方法 resolution
有三条故障排除路径A、B和C。
选项A — 调整聚合深度:
-
使用 CRXDE Lite 检查包含该链接的节点层级。
-
查看页面的结构并对其进行调整,使链接节点位于更浅的级别。
-
如果链接节点保持深度嵌套,请更新Lucene索引以增加为传入链接检测编制索引的深度(例如,在
/oak:index/cqPageLucene/aggregates/cq:PageContent下添加include4, include5等聚合定义)。 这些定义索引在jcr:content下应遍历的深度以检测链接。
-
进行更改后,保存索引节点并触发重新索引以应用它们。
选项B — 还原自定义索引设置:
注意:重新索引可能会影响性能。 在低流量期间计划此任务。
- 在CRXDE Lite中导航到
/oak:index/cqPageLucene。 - 删除任何自定义分析器或错误配置的属性。
- 将
fulltextEnabled标记重置为OOTB值。 - 设置
reindex = true并通过JMX控制台或日志进行监视。
选项C — 禁用高级配置(用于测试):
- 转到
/system/console/configMgr并找到 IncomingLinksReferenceProvider。 - 暂时禁用此配置以检查是否显示更多传入链接。 这有助于确定配置是否正在禁止显示结果。
- 测试后重新启用配置以恢复正常行为。
验证
-
使用SQL2验证实际链接计数(路径
/content/we-retail/us/en/about-us)是示例目标页。 将其替换为链接目标的实际路径。code language-none SELECT [ jcr:path] FROM [ cq:Page] WHERE CONTAINS(*, '"/content/we-retail/us/en/about-us"') -
将查询结果与“引用”选项卡中显示的内容进行比较,以确认差异。
用于查询验证的有用工具:
要协助排查和验证传入链接查询,请使用AEM中提供的以下工具:
- 查询性能工具 — http://localhost:4502/libs/granite/operations/content/diagnosistools/queryPerformance.html
- 允许您测试和分析SQL2和QueryBuilder查询,以获得性能见解。
- JCR查询生成器调试器 — http://localhost:4502/libs/cq/search/content/querydebug.html
- 允许使用详细输出执行和调试QueryBuilder查询。
原因
- 默认情况下,
jcr:content下的深度嵌套节点可能不会编制索引,这会导致AEM在更深层丢失链接。 调整Lucene聚合有助于改进深度识别。 /oak:index/cqPageLucene下的自定义Lucene索引配置(例如,分析器或配置错误的属性)可能会限制全文索引并影响链接检测。- 高级链接检测配置(如
IncomingLinksReferenceProvider)可能会抑制传入链接可见性。 临时禁用此提供程序可能会显示隐藏的结果并帮助进行调试。