如何重新索引同步 AEM 索引 | AEM、Oak

說明

環境
Adobe Experience Manager

問題
如何正確重新索引同步Oak索引而不造成停機?

解決方法

解決方案
只需將reindex屬性設定為 true 導致同步操作,而可能導致Oak例項擱置。
為避免此情況,請將索引發送到後台線程。
若要這麼做,請遵循下列步驟:

步驟 1:在背景對話串中重新索引

  1. CRXDE Lite 在要為非同步索引啟用的屬性索引的索引定義上:

    /oak:index/property index
    reindex=true
    reindex-async=true
    
  2. 若要驗證上述操作是否重新整理了節點,應設定 async="async-reindex"

  3. 叫用 startPropertyIndexAsyncReindex (在 PropertyIndexAsyncReindex MBean 上)。

    這將啟動搜尋此類索引的背景作業。

    調用後,您應該會看到將執行日誌行重新索引……

  4. 完成重新索引後,重新索引標幟會重設為 false.

  5. 重新叫用步驟 3 以將索引變更回同步索引。如果未刪除非同步標幟,則可能必須叫用Mbean多次(如果同時影響此索引的變更,則可能會發生此情況)。

    注意:​只有 async="async-reindex" 將被移除,因為它控制索引將發生在哪個對話串上。

    reindex-async 屬性只是不會自動變更的設定標幟。

    這表示您要為控制所有未來重新索引的特定索引定義將其設定一次。

    然後可預期它會留在那裡,於是您就不需要再次觸摸它了。

步驟 2:移除重新索引查核點 (僅限 AEM 6.2 和更早版本)

在不同步重新索引的流程中,會建立一個存放庫查核點。索引任務完成後,必須按如下所述將其釋出,以確保稍後可順利進行修訂垃圾收藏集:

  1. 首先,開啟 查核點管理器 MBean:

    在MongoMK - /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger

    在TarMK上 —  /system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DSegment+node+store+checkpoint+management%2Ctype%3DCheckpointManger

  2. 叫用 listCheckpoints() 作業.

  3. 找到包含 name=async-reindex 屬性的查核點列。

  4. 將其 id 值複製到剪貼簿:

    在MongoMK上,看起來會類似這樣: r1234567aaaa-0-1

    在TarMK上,看起來會類似這樣: 6eac07d0-fe27-4d16-82f8-6d5da4cefd67

  5. 然後開啟 releaseCheckpoint() 作業。

  6. 將複製的id貼上為p1,然後按一下 叫用.

  7. 此步驟將釋出查核點。

本頁內容