建立索引

Adobe Experience Manager 提供方法來保留網站特定區段所有已發佈頁面的索引。這通常可用來建立清單、摘要以及為頁面或內容片段啟用搜尋和篩選使用案例。

AEM會將此索引保留在試算表中,並使用JSON提供存取權。 如需詳細資訊,請參閱檔案試算表和JSON

我們將介紹透過先預覽Excel活頁簿或Google試算表來建立查詢索引的概念。 請注意,如果您在GitHub存放庫中名為helix-query.yaml的檔案中已有自訂查詢定義,則無法再以此方式建立索引。 每個新索引都必須手動新增至該helix-query.yaml

設定初始查詢索引

在本節中,我們將在根資料夾中建立查詢索引,該索引將索引您後端中的所有檔案。

  1. 在設定您的fstab.yaml且裝載點指向您的SharePoint網站或Google磁碟機後,請移至根資料夾。
  2. 根據您的後端,為SharePoint建立名為query-index.xlsx的活頁簿,或為Google Drive建立名為query-index的試算表。
  3. 在該試算表或活頁簿中,建立名為raw_index的工作表。

設定要新增至索引的屬性

  1. 在您的query-index檔案中,新增標題行,並在第一欄新增path作為標題名稱。
  2. 在標題行的下列欄中,新增您需要從轉譯的HTML頁面中擷取的所有其他屬性。

在以下Google Drive範例中,擷取的欄位為titleimagedescriptionlastModified

頁面在發佈時會編制索引。 若要從索引移除頁面,必須取消發佈頁面。

對於沒有自訂索引定義的簡單案例,具有robots中繼資料屬性設定為noindex的頁面將自動從AEM的索引中忽略。 (這裡有幾個特殊情況,如需詳細資訊,請參閱機器人特殊情況小節。)

下表總結列出可用的屬性,以及這些屬性在HTML頁面中的擷取位置。

名稱
描述
author
傳回head元素中名為author的中繼標籤的內容。
title
傳回head元素中og:title中繼屬性的內容。
date
傳回head元素中名為publication-date的中繼標籤的內容。
image
傳回head元素中og:image中繼屬性的內容。
category
傳回head元素中名為category的中繼標籤的內容。
tags

以陣列傳回head元素中名為article:tag的中繼標籤的內容。

如需陣列處理的詳細資訊,請參閱檔案試算表和JSON

description
傳回head元素中名為description的中繼標籤的內容。
robots
傳回head元素中名為robots的中繼標籤的內容。
lastModified
傳回檔案Last-Modified回應標頭的值。

對於新增的其他每個標頭,索引器都會嘗試尋找具有相對應名稱的中繼標籤。

啟用您的索引

若要啟用索引,請使用Sidekick預覽試算表。 這會建立索引設定。

檢查索引

Admin Service有一個API端點,您可以在其中檢查頁面的索引表示。 提供您的GitHub擁有者、存放庫、分支和擁有者,以及頁面的資源路徑,其端點為:

https://admin.hlx.page/index/<owner>/<repo>/<branch>/<path>

您應該會收到JSON回應,其中資料節點包含頁面的索引表示方式。

正在偵錯索引設定

AEM CLI具備一項功能,可在您變更查詢設定時列印索引記錄,協助尋找正確的CSS選取器:

$ aem up --print-index

請參閱AEM CLI GitHub檔案以取得詳細資訊,並觀看此影片以進一步瞭解此功能。

設定更多索引設定

您可以建立自己的helix-query.yaml. ,定義您自己的自訂索引設定。如此可讓您在同一helix-query.yaml中擁有多個索引設定,其中部分網站會索引至不同的Excel活頁簿或Google試算表。 如需詳細資訊,請參閱檔案索引參考

機器人的特殊情境

AEM在設定您網站的索引時,會對頁面如何編制索引有幾項細微差異。 讓我們來看一下:

在下列兩種情況下,在頁面中繼資料上將robots設定為noindex將​ 不會 ​防止AEM編制其索引:

  • 您已在query-index.xlsx中新增robots
  • 您的Github存放庫中有helix-query.yaml,表示您已定義​ 自訂索引定義。

建議

  1. 如果您沒有自訂索引定義,建議​ ​將robots資料行新增至索引工作表,除非您有此要求。
    robots欄新增至索引工作表,會導致頁面被AEM索引,即使它可能將robots中繼資料設定為noindex.也是如此
  2. 如果您有自訂索引定義,無論頁面中繼資料上的robots設定為noindex,AEM都會將頁面編入索引。 若要避免發生這種情況,您可以使用試算表篩選器,從索引中省略將robots中繼資料設為 noindex的頁面。 如需詳細資訊,請參閱以下標題為"強制執行 noindex 設定與自訂索引定義"的章節。

使用自訂索引定義強制執行「noindex」設定

如果您已在 helix-query.yaml中定義自己的自訂索引定義,將robots屬性設定為noindex無法有效防止頁面被索引。 為了強制 noindex 設定是這樣的情況,請執行下列動作:

  1. 在您的 query-index.xlsx中建立名為"helix-default"的工作表。 之後,您的query-index.xlsx試算表應該有2張工作表“raw_index“helix-default。 「“raw_index」工作表含有所有原始索引資料。
  2. 修改您的自訂helix-query.yaml (必須位於專案的Github存放庫中)並新增robots屬性,以便索引該專案。
  3. 現在在query-index.xlsx試算表中設定“helix-default工作表,以使用Excel公式自動填滿,該公式可確保不會將raw_index中屬性設定為 robots的所有資料列複製到 helix-default工作表。 noindex您可以使用Excel公式(如=FILTER(Table1,NOT(Table1[robots]="noindex")))來完成
  4. 現在,您的helix-default工作表只有來自 raw_index且未將 robots屬性設定為 noindex的資料列。
  5. 請確定您發佈要建立索引的頁面。
  6. 現在,如果您如常擷取索引,例如: https://<branch>--<repo>-<org>.hlx.page/query-index.json,則只會從 helix-default工作表取得資料,也就是未明確禁止透過robot 屬性集 noindex建立索引的專案。
recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec