Oak-run.jar索引使用案例 oak-run-jar-indexing-use-cases

CAUTION
AEM 6.4已結束延伸支援,本檔案不再更新。 如需詳細資訊,請參閱 技術支援期. 尋找支援的版本 此處.

Oak-run支援在命令列上建立使用案例的索引,而無須透過AEM JMX主控台協調這些使用案例的執行。

使用oak-run.jar index命令方法管理Oak索引的主要優點如下:

  1. Oak-run index命令為AEM 6.4提供新的索引工具集。
  2. Oak-run可縮短重新索引的時間,減少大型存放庫的重新索引時間。
  3. Oak-run可減少AEM中重新索引期間的資源耗用量,整體系統效能更佳。
  4. Oak-run提供帶外重新索引,支援必須提供生產環境,且無法忍受維護或停機,因此需要重新索引。

以下各節將提供示例命令。 oak-run index命令支援所有NodeStore和BlobStore設定。 以下提供的範例說明有FileDataStore和SegmentNodeStore的設定。

使用案例1 — 索引一致性檢查 usercase1indexconsistencycheck

這是與索引損壞相關的使用案例。 在某些情況下,無法確定哪些索引已損壞。 因此,Adobe提供了以下工具:

  1. 對所有索引執行索引一致性檢查,並提供索引有效且無效的報告;
  2. 即使無法存取AEM,工具仍可使用;
  3. 使用簡單。

檢查損壞的索引可以通過 --index-consistency-check 操作:

java -jar oak-run*.jar index --fds-path=/path/to/datastore  /path/to/segmentstore/ --index-consistency-check

這會在 indexing-result/index-consistency-check-report.txt. 如需範例報表,請參閱下方:

Valid indexes :
        - /content/oak:index/enablementResourceName
        - /oak:index/cqProjectLucene
        - /oak:index/cqTagLucene
        - /oak:index/lucene
        - /oak:index/ntBaseLucene
        - /oak:index/socialLucene
    Invalid indexes :
        - /oak:index/atDamIndex
        - /oak:index/atIndex
        - /oak:index/cqPageLucene
        - /oak:index/damAssetLucene
        - /oak:index/groups
        - /oak:index/slingeventJob
        - /oak:index/users
        - /oak:index/workflowDataLucene
    Ignored indexes as these are not of type lucene:
        - /oak:index/acPrincipalName
        - /oak:index/active

優點 uc1benefits

支援和系統管理員現在可以使用此工具快速確定哪些索引已損壞,然後重新索引。

使用案例2 — 索引統計資訊 usecase2indexstatistics

為診斷查詢效能Adobe的某些情況,通常需要現有索引定義,從客戶設定中索引相關統計資訊。 到目前為止,這些資訊分散在多個資源中。 為了更方便疑難排解,Adobe已建立工具,可:

  1. 將系統上存在的所有索引定義轉儲到單個JSON檔案中;

  2. 從現有索引中轉儲重要統計資訊;

  3. 離線分析的轉儲索引內容;

  4. 即使AEM無法存取,仍可使用

現在,可透過下列操作索引命令執行上述操作:

  • --index-info — 收集和轉儲與索引相關的各種統計資訊

  • --index-definitions — 收集和轉儲索引定義

  • --index-dump — 轉儲索引內容

請參閱下方命令在實際中如何運作的範例:

java -jar oak-run*.jar index --fds-path=/path/to/datastore  /path/to/segmentstore/ --index-info --index-definitions --index-dump

報表將產生於 indexing-result/index-info.txtindexing-result/index-definitions.json

此外,您也可透過Web主控台提供相同的詳細資訊,且會成為設定傾印Zip的一部分。 您可在下列位置存取這些區段:

https://serverhost:serverport/system/console/status-oak-index-defn

優點 uc2benefits

此工具可讓您快速收集與索引或查詢問題相關的所有必要詳細資訊,並縮短擷取此資訊所花的時間。

使用案例3 — 重新索引 usecase3reindexing

藍本,在某些情況下需要執行重新索引。 目前,重新索引是透過設定 reindex 標幟為 true 通過CRXDE或Index Manager用戶介面在索引定義節點中。 標幟設定後,會以非同步方式重新建立索引。

在重新索引方面應注意以下幾點:

  • 重新索引在 DocumentNodeStore 比較設定 SegmentNodeStore 設定所有內容都為本地的位置;

  • 在目前的設計中,重新索引發生時,非同步索引器會遭到封鎖,而所有其他非同步索引都會過時,且在索引期間沒有取得更新。 因此,若系統正在使用中,使用者可能看不到最新的結果;

  • 重新索引涉及遍歷整個儲存庫,這會給AEM設定帶來高負載,從而影響最終用戶體驗;

  • DocumentNodeStore 在安裝中重新索引可能需要相當長的時間,如果到Mongo資料庫的連接在操作中出現故障,則必須從頭開始重新索引;

  • 在某些情況下,重新索引可能需要很長的時間,因為會擷取文字。 這主要是用於具有大量PDF檔案的設定,其中用於文本提取的時間會影響索引時間。

為達成這些目標,Oak-run索引工具支援不同模式,可視需要使用。 oak-run index命令提供下列優點:

  • 帶外重新索引 - oak執行重新索引可與執行中的AEM設定分開執行,因此可將對使用中AEM例項的影響降至最低;

  • 出入重新索引 — 重新編製索引不影響編製索引的操作。 這表示非同步索引器可以繼續為其他索引建立索引;

  • 簡化DocumentNodeStore安裝的重新索引 — 適用於 DocumentNodeStore 安裝時,只需使用一個命令即可完成重新索引,這可確保以最佳的方式完成重新索引;

  • 支援更新索引定義和引入新索引定義

重新索引 — DocumentNodeStore reindexdocumentnodestore

針對 DocumentNodeStore 安裝可透過單一oak-run命令完成重新索引:

java -jar oak-run*.jar index --reindex --index-paths=/oak:index/lucene --read-write --fds-path=/path/to/datastore mongodb://server:port/aem

這提供下列優點

  • 對執行AEM例項的影響最小。 大部分的讀取可從次要伺服器完成,且執行中的AEM快取不會因為重新索引所需的所有周遊而受到即時影響;
  • 使用者也可以透過 --index-definitions-file 選項。

重新索引 — SegmentNodeStore reindexsegmentnodestore

針對 SegmentNodeStore 安裝可通過以下方法之一完成重新索引:

聯機重新索引 — SegmentNodeStore onlinereindexsegmentnodestore

遵循透過設定來重新索引的既定方式 reindex 標籤。

線上重新索引 — SegmentNodeStore -AEM執行個體正在執行 onlinereindexsegmentnodestoretheaeminstanceisrunning

針對 SegmentNodeStore 只有安裝一個進程才能以讀寫模式訪問段檔案。 因此,在oak-run索引中執行某些作業時,需要執行額外的手動步驟。

這將涉及下列事項:

  1. 步驟文字

  2. 連接 oak-run 至AEM以唯讀模式使用的相同存放庫,並執行索引。 如何達成此目標的範例:

    code language-shell
    java -jar oak-run-1.7.6.jar index --fds-path=/Users/dhasler/dev/cq/quickstart/target/crx-quickstart/repository/datastore/ --checkpoint 26b7da38-a699-45b2-82fb-73aa2f9af0e2 --reindex --index-paths=/oak:index/lucene /Users/dhasler/dev/cq/quickstart/target/crx-quickstart/repository/segmentstore/
    
  3. 最後,透過 IndexerMBean#importIndex 從oak-run執行上述命令後儲存索引檔案的路徑執行操作。

在此案例中,您不需要停止AEM伺服器或布建任何新執行個體。 但是,由於索引涉及遍歷整個儲存庫,因此會增加安裝的I/O負載,從而對運行時效能產生負面影響。

線上重新索引 — SegmentNodeStore — 關閉AEM例項 onlinereindexsegmentnodestoreaeminstanceisdown

針對 SegmentNodeStore 安裝可透過單一oak-run命令完成重新索引。 不過,AEM例項需要關閉。

您可以使用以下命令觸發重新索引:

java -jar oak-run*.jar index --reindex --index-paths=/oak:index/lucene --read-write --fds-path=/path/to/datastore  /path/to/segmentstore/

此方法與上述方法的差異在於,檢查點建立和索引匯入會自動完成。 缺點在於,AEM需要在此過程中停止運作。

帶外重新索引 — SegmentNodeStore outofbandreindexsegmentnodestore

在此使用案例中,您可以對複製的設定執行重新索引,以將對執行中的AEM例項的影響降至最低:

  1. 通過JMX操作建立檢查點。 您可以前往 JMX控制台 和搜索 CheckpointManager. 然後,按一下 createCheckpoint(long p1) 以秒為單位的高值運算(例如 2592000)。

  2. 複製 crx-quickstart 資料夾到新電腦

  3. 透過oak-run index命令執行重新索引

  4. 將生成的索引檔案複製到AEM伺服器

  5. 通過JMX導入索引檔案。

在此使用案例中,會假設資料存放區可在其他執行個體上存取,如果 FileDataStore 放置在EBS等雲儲存解決方案上。 這會排除以下情境: FileDataStore 也會複製。 如果索引定義不執行全文索引,則訪問 DataStore 非必要。

使用案例4 — 更新索引定義 usecase4updatingindexdefinitions

目前,您可以透過 ACS確保索引 包。 這可讓您透過內容套件傳送索引定義,之後需要透過設定 reindex 標幟為 true.

這對於重新索引不需要很長時間的較小安裝非常有用。 但是,對於非常大的儲存庫,重新索引將在相當長的時間內完成。 針對這類情況,我們現在可使用Oak-run索引工具。

Oak-run現在支援以JSON格式提供索引定義,並以頻外模式建立索引,在即時執行個體上不會執行任何變更。

針對此使用案例,您需要考慮的程式為:

  1. 開發人員會更新本機執行個體上的索引定義,然後透過 --index-definitions 選項

  2. 接著,更新的JSON會提供給系統管理員

  3. 系統管理員遵循帶外方法,並在不同安裝上準備索引

  4. 完成後,在執行中的AEM安裝中會匯入產生的索引檔案。

recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56