如何重新索引同步 AEM 索引 | AEM、Oak
若要重新索引同步AEM索引,您只需將reindex屬性設定為 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"
。 -
叫用
startPropertyIndexAsyncReindex
於PropertyIndexAsyncReindex
MBean。這會啟動搜尋這類索引的背景工作。
叫用後,您應該會看到將執行日誌行重新索引……
-
重新索引完成後,重新索引標幟將重設為 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,然後按一下 叫用.
-
此步驟將釋出查核點。