如何重新索引同步 AEM 索引 | AEM、Oak
若要重新索引同步AEM索引,您只需將重新索引屬性設定為 true 即可。 但是,這可能會導致Oak執行個體擱置,在這種情況下,您需要將索引傳送到背景對話串。 本文會說明如何進行。
說明 description
環境
Adobe Experience Manager
問題/症狀
如何正確地重新索引同步 Oak 索引而不會導致停機?
解析度 resolution
只要將重新索引屬性設定為 true 來重新索引同步索引,就會導致同步作業,這可能導致Oak執行個體擱置。
若要避免這種情況,請將索引傳送到背景對話串。 請遵循下列步驟:
步驟1:在背景執行緒中重新索引
-
在要啟用非同步索引的屬性索引的索引定義上,從 CRXDE Lite 設定下列屬性:
code language-none /oak:index/<property index> reindex=true reindex-async=true
-
若要驗證上述操作是否重新整理了節點,應設定
async="async-reindex"
。 -
叫用
PropertyIndexAsyncReindex
MBean.
上的startPropertyIndexAsyncReindex
這會啟動搜尋這類索引的背景工作。
Post引動過程中,您應該會看到一條記錄行重新索引將會執行……
-
重新索引完成後,重新索引標幟將會重設為 false。
-
重新叫用步驟 3 以將索引變更回同步索引。如果未刪除非同步標幟,則可能必須多次叫用Mbean (如果同時發生影響此索引的變更,則可能會發生這種情況。)
注意: 只有
async="async-reindex"
將被移除,因為它控制索引將發生在哪個對話串上。reindex-async
屬性只是一個不會自動變更的設定標幟。這表示您要為控制所有未來重新索引的特定索引定義將其設定一次。
然後可預期它會留在那裡,於是您就不需要再次觸摸它了。
步驟2:移除重新索引查核點(僅限AEM 6.2和更早版本)
在非同步重新索引的流程中,會建立一個存放庫查核點。
索引任務完成後,必須按如下所述將其釋出,以確保稍後可順利進行修訂垃圾收藏集:
-
首先,開啟 檢查點管理員 MBean:
在MongoMK -/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3DDocument+node+store+checkpoint+management%2Ctype%3DCheckpointManger
-
叫用
listCheckpoints()
作業。 -
找到包含
name=async-reindex
屬性的查核點列。 -
將其id值複製到剪貼簿:
在MongoMK上,它將看起來類似這樣:r1234567aaaa-0-1
在TarMK上,它將看起來類似這樣:
6eac07d0-fe27-4d16-82f8-6d5da4cefd67
-
然後開啟
releaseCheckpoint()
作業。 -
將複製的ID貼上為p1,然後按一下 叫用。
-
此步驟將釋出查核點。