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

若要重新索引同步AEM索引,您只需將重新索引屬性設定為​ true ​即可。 但是,這可能會導致Oak執行個體擱置,在這種情況下,您需要將索引傳送到背景對話串。 本文會說明如何進行。

說明 description

環境

Adobe Experience Manager

問題/症狀

如何正確地重新索引同步 Oak 索引而不會導致停機?

解析度 resolution

只要將重新索引屬性設定為​ true ​來重新索引同步索引,就會導致同步作業,這可能導致Oak執行個體擱置。

若要避免這種情況,請將索引傳送到背景對話串。 請遵循下列步驟:

步驟1:在背景執行緒中重新索引

  1. 在要啟用非同步索引的屬性索引的索引定義上,從 CRXDE Lite 設定下列屬性:

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

  3. 叫用PropertyIndexAsyncReindex MBean.
    上的startPropertyIndexAsyncReindex

    這會啟動搜尋這類索引的背景工作。

    Post引動過程中,您應該會看到一條記錄行重新索引將會執行……

  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. 此步驟將釋出查核點。

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