AEM Query Builder API で一貫性のないクエリ結果が発生する

Adobe Experience Manager(AEM)で Query Builder API を使用してクエリを実行すると、意図しないインデックスが使用されている場合に一貫性のない結果が返される。 修正するには、index を使用して目的のインデックスを指定します Query Builder API の タグ。

説明 description

環境

  • 製品 :AEM Managed Services、Sites、v6.5
  • インスタンス :実稼動

問題/症状

クエリの実行中に意図しないインデックスが使用されると、クエリの結果に一貫性がなくなります。

解決策 resolution

この問題を修正するには、次の手順に従います

  1. /oak:index/<index> プロパティにカスタム値を指定して、タグを tags のカスタムインデックス定義に割り当てます。

  2. Query Builder 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)
    • 同等の Query Builder 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