AEM查询生成器API中的查询结果不一致

在Adobe Experience Manager (AEM)中,如果使用意外索引,则使用查询生成器API执行查询时,会返回不一致的结果。 要修复,请使用index指定所需的索引 查询生成器API中的标记。

描述 description

环境

  • 产品: AEM Managed Services,站点,v6.5
  • 实例:生产

问题/症状

当查询执行期间使用非预期的索引时,查询结果不一致。

解决方法 resolution

要解决此问题,请执行以下步骤

  1. 通过使用自定义值指定/oak:index/<index>属性来为tags中的自定义索引定义分配标记。

  2. 在查询生成器API查询中使用p.indexTag参数。

  3. p.indexTag=<tagname>添加到查询中,其中<tagname>与自定义索引标记匹配。

  4. 验证查询是否使用预期的自定义索引。 例如:

    • 自定义索引定义示例(在/oak:index/fullTextSearch下): jcr:mixinTypes="[ rep:AccessControllable] "
      async="[ async,nrt] "
      compatVersion="{Long}2"
      evaluatePathRestrictions="{Boolean}true"
      excludedPaths="[ /var,/etc/replication,/etc/workflow/instances,/jcr:system] "
      includedPaths="[ /content/mysite] "
      queryPaths="[ /content/mysite] "
      reindex="{Boolean}false"
      reindexCount="{Long}1"
      seed="{Long}-4788584413483415353"
      type="lucene"
      tags="[ customSearch] "
    • 使用特定索引的XPath查询: /jcr:root/content/data/element(*, cq:Page)[ (jcr:contains(., 'courses'))] option (index tag customSearch)
    • 等效的查询生成器API查询: fulltext=courses
      type=cq:Page
      path=/content/mysite
      p.limit=10
      p.indexTag=customSearch
  5. 运行更新的查询以验证与指定的自定义索引(customSearch)一致且准确的结果。

相关读数

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f