建立索引
Adobe Experience Manager 提供方法來保留網站特定區段所有已發佈頁面的索引。這通常可用來建立清單、摘要以及為頁面或內容片段啟用搜尋和篩選使用案例。
AEM會將此索引保留在試算表中,並使用JSON提供存取權。 如需詳細資訊,請參閱檔案試算表和JSON。
我們將介紹透過先預覽Excel活頁簿或Google試算表來建立查詢索引的概念。 請注意,如果您在GitHub存放庫中名為helix-query.yaml的檔案中已有自訂查詢定義,則無法再以此方式建立索引。 每個新索引都必須手動新增至該helix-query.yaml。
設定初始查詢索引
在本節中,我們將在根資料夾中建立查詢索引,該索引將索引您後端中的所有檔案。
- 在設定您的
fstab.yaml且裝載點指向您的SharePoint網站或Google磁碟機後,請移至根資料夾。 - 根據您的後端,為SharePoint建立名為
query-index.xlsx的活頁簿,或為Google Drive建立名為query-index的試算表。 - 在該試算表或活頁簿中,建立名為
raw_index的工作表。
設定要新增至索引的屬性
- 在您的
query-index檔案中,新增標題行,並在第一欄新增path作為標題名稱。 - 在標題行的下列欄中,新增您需要從轉譯的HTML頁面中擷取的所有其他屬性。
在以下Google Drive範例中,擷取的欄位為title、image、description和lastModified。
頁面在發佈時會編制索引。 若要從索引移除頁面,必須取消發佈頁面。
對於沒有自訂索引定義的簡單案例,具有robots中繼資料屬性設定為noindex的頁面將自動從AEM的索引中忽略。 (這裡有幾個特殊情況,如需詳細資訊,請參閱機器人特殊情況小節。)
下表總結列出可用的屬性,以及這些屬性在HTML頁面中的擷取位置。
對於新增的其他每個標頭,索引器都會嘗試尋找具有相對應名稱的中繼標籤。
啟用您的索引
若要啟用索引,請使用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,表示您已定義 自訂索引定義。
建議
使用自訂索引定義強制執行「noindex」設定
如果您已在 helix-query.yaml中定義自己的自訂索引定義,將robots屬性設定為noindex無法有效防止頁面被索引。 為了強制 noindex 設定是這樣的情況,請執行下列動作:
- 在您的
query-index.xlsx中建立名為"helix-default"的工作表。 之後,您的query-index.xlsx試算表應該有2張工作表“raw_index和“helix-default。 「“raw_index」工作表含有所有原始索引資料。 - 修改您的自訂
helix-query.yaml(必須位於專案的Github存放庫中)並新增robots屬性,以便索引該專案。 - 現在在
query-index.xlsx試算表中設定“helix-default工作表,以使用Excel公式自動填滿,該公式可確保不會將raw_index中屬性設定為robots的所有資料列複製到helix-default工作表。noindex您可以使用Excel公式(如=FILTER(Table1,NOT(Table1[robots]="noindex")))來完成 - 現在,您的helix-default工作表只有來自
raw_index且未將robots屬性設定為noindex的資料列。 - 請確定您發佈要建立索引的頁面。
- 現在,如果您如常擷取索引,例如:
https://<branch>--<repo>-<org>.hlx.page/query-index.json,則只會從helix-default工作表取得資料,也就是未明確禁止透過robot屬性集noindex建立索引的專案。