使用結構化資料進行進階網站索引

如果資料儲存庫已啟用進階網站索引功能,您可以使用下列類型的結構化資料來豐富索引:

本頁將介紹這兩種網頁結構化資料,並說明如何將自訂結構化屬性新增至資料存放區結構定義。

關於預先定義的 Google 推斷網頁日期

檢索網站資料儲存庫中的網頁時,Google 會使用適用於內容的屬性推斷網頁資料。Vertex AI Search 會將這些推斷的網頁資料屬性新增至您的結構化資料。這項推斷資料包括下列預先定義的日期屬性,也稱為署名日期

  • datePublished:網頁首次發布的日期和時間
  • dateModified:網頁最近一次修改的日期和時間

系統會自動為這些屬性建立索引。您可以直接使用這些日期屬性來豐富搜尋結果,不必將這些屬性加入結構定義。如要在網站中加入署名日期,請參閱「影響 Google 搜尋中的署名日期」。

如要瞭解如何在搜尋要求中加入這些預先定義的日期屬性 (例如在篩選運算式和提升規格中),請參閱使用 Google 推斷網頁日期的範例使用案例

網頁上的自訂日期時間欄位簡介

您可以在網頁中新增自訂日期時間欄位。當您將自訂結構化資料屬性新增至資料儲存區結構定義時,這類標記可搭配進階索引使用。
以下範例顯示如何在網頁上加入名為 lastModified 的自訂日期時間中繼標記。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your web page title</title>

    <!-- Vertex AI Search can use this date. -->
    <meta name="lastModified" content="2022-07-01">
</head>
<body>
    </body>
</html>

如要瞭解如何在搜尋要求中加入這類自訂日期時間標記 (例如在篩選運算式和加成規格中),請參閱使用自訂日期時間屬性的範例用途

關於自訂結構化資料屬性

您可以在網頁中加入結構化資料屬性做為 meta 標記和 PageMap,並使用這些屬性來豐富索引。如要使用自訂結構化屬性建立索引,請更新架構。

meta 標記的應用實例

假設您有大量網頁與貴機構的各個部門相關,您可以使用 meta 標籤,標示與各部門相關的網頁。然後,您就可以在查詢中將已建立索引的標記做為篩選條件。這樣一來,搜尋結果就會僅限於含有與指定部門相符標籤的網頁。

這個流程可歸納如下:

  1. 在部分網頁中加入下列 meta 標記:
    • 工程和 IT 部門適用: <meta name="department" content="eng, infotech">
    • 適用於財務和人資部門: <meta name="department" content="finance, human resources">
  2. 重新檢索更新後的網頁。
  3. 如「將自訂結構化資料屬性新增至資料儲存庫架構」一節所述,將 department 新增至資料儲存庫架構,做為可建立索引的陣列。

更新結構定義後,資料存放區會自動重新建立索引。重新建立索引完成後,您可以在篩選器運算式中使用 department 篩選器,重新排序或篩選搜尋結果。舉例來說,當財務部門的使用者發出查詢時,只要將 department 篩選器設為 finance,即可提供更符合需求的搜尋結果。

網頁上的 meta 代碼範例

以下是可新增至網頁的 meta 標記範例。在資料儲存區結構定義中加入自訂結構化資料屬性時,這類標記可搭配進階索引使用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your web page title</title>

    <!-- Robots instructions for crawlers and for Vertex AI Search. -->
    <meta name="robots" content="index,follow">

    <!-- Vertex AI Search can use custom datetime fields to filter, boost, and order. -->
    <meta name="lastModified" content="2024-09-06">

    <!-- Vertex AI Search can filter by category or tags. -->
    <meta name="category" content="archived">
    <meta name="tags" content="legacy,interesting,faq">

    <!-- Vertex AI Search can index these common HTML tags. -->
    <meta name="description" content="A description of your web page's content.">
    <meta name="author" content="Your name or organization">
    <meta name="keywords" content="relevant,keywords,separated,by,commas">
    <link rel="canonical" href="https://www.yourwebsite.com/this-page">
    <meta property="og:title" content="Your Webpage Title">
    <meta property="og:description" content="A description of your webpage's content.">
    <meta property="og:image" content="https://www.yourwebsite.com/image.jpg">
    <meta property="og:url" content="https://www.yourwebsite.com/this-page">
    <meta property="og:type" content="website">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Your customized Webpage Title">
    <meta name="twitter:description" content="A description of your webpage's content.">
    <meta name="twitter:image" content="https://www.yourwebsite.com/image.jpg">
</head>
<body>
...
</body>
</html>

PageMap 的用途範例

假設您有多個包含食譜的網頁,您可以將 PageMap 資料新增至每個網頁的 HTML 內容。然後在查詢中使用已建立索引的 PageMap 屬性名稱做為篩選條件。舉例來說,如果您打算根據食譜評分提升或隱藏網頁,可以按照下列程序操作:

  1. 在網頁中加入類似下列的 PageMap 資料:

    <html>
    <head>
    ...
    <!--
    <PageMap>
        <DataObject type="document">
            <Attribute name="title">Baked potatoes</Attribute>
            <Attribute name="author">Dana A.</Attribute>
            <Attribute name="description">Homestyle baked potatoes in oven. This
            recipe uses Russet potatoes.</Attribute>
            <Attribute name="rating">4.9</Attribute>
            <Attribute name="lastUpdate">2015-01-01</Attribute>
        </DataObject>
    </PageMap>
    -->
    </head>
    ...
    </html>
    
  2. 重新檢索更新後的網頁。

  3. 如「將自訂結構化資料屬性新增至資料儲存庫架構」一節所述,將 rating 新增至資料儲存庫架構,做為可建立索引的陣列。

更新結構定義後,資料存放區會自動重新建立索引。重新建立索引完成後,您可以在篩選器運算式中使用 rating 屬性,重新排序或篩選搜尋結果。舉例來說,當使用者搜尋食譜時,可使用 rating 做為自訂數值屬性,提升評分最高的搜尋結果。

schema.org 資料的用途範例

假設您有一個評論網站,且網頁的 HTML script 標記內已使用 JSON-LD 格式註解 schema.org 資料。然後在查詢中使用已建立索引的註解做為篩選條件。舉例來說,如果您打算根據匯總評分提升或隱藏網頁,可以按照下列程序操作:

  1. 在網頁中加入類似下列的評論內容 schema.org 註解。如要查看其他類型的 schema.org 範本,請參閱「結構定義」:

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Review",
      "aggregateRating": {
        "@type": "Average Rating",
        "ratingValue": 3.5,
        "reviewCount": 11
      },
      "description": "Published in 1843, this is the perfect depiction of the Victorian London. A Christmas Carol is the story of Ebenezer Scrooge's transformation.",
      "name": "A Christmas Carol",
      "image": "christmas-carol-first-ed.jpg",
      "review": [
        {
          "@type": "Review",
          "author": "Alex T.",
          "datePublished": "2000-01-01",
          "reviewBody": "Read this in middle school and have loved this ever since.",
          "name": "Worth all the adaptations",
          "reviewRating": {
            "@type": "Rating",
            "bestRating": 5,
            "ratingValue": 5,
            "worstRating": 1
          }
        }
      ]
    }
    </script>
    
  2. 重新檢索更新後的網頁。

  3. ratingValue 的路徑新增至資料儲存庫結構定義。在資料存放區結構定義中,使用 ID 做為欄位名稱,例如 rating_value,如「將自訂結構化資料屬性新增至資料存放區結構定義」一節所述。

更新結構定義後,資料存放區會自動重新建立索引。重新建立索引完成後,您可以在篩選器運算式中使用 rating_value 屬性,重新排序或篩選搜尋結果。舉例來說,當使用者搜尋書籍時,您可以將 rating_value 設為自訂數值屬性,藉此提升高評價書籍的搜尋結果。

事前準備

更新資料存放區結構定義前,請先執行下列操作:

  • 為資料儲存庫啟用進階網站索引建立功能。詳情請參閱「啟用進階網站索引功能」。
  • 瞭解結構化資料的運作方式
  • 瞭解如何使用 PageMap。查看可新增至 PageMap 資料的已辨識 DataObject 清單。
  • 瞭解如何使用 meta 標記。請勿使用任何排除不支援的中繼標記
  • 確認需要建立索引的屬性不含下列任何值:
    • datePublished
    • dateModified
    • siteSearch
  • 請注意,在網頁中加入結構化資料後,您必須重新檢索網頁。這項作業可能需要數小時才能完成。
  • 請注意,將結構化資料屬性新增至資料存放區結構定義後,資料存放區中的網頁會自動重新建立索引。重新建立索引是長時間執行的作業,可能需要數小時才能完成。

將自訂結構化資料屬性新增至資料儲存庫結構定義

如要將自訂結構化資料屬性新增至資料儲存庫結構定義,請按照下列步驟操作:

  1. 在網站中,將 meta 標記、PageMap 資料和 schema.org 資料新增至所有要透過結構化資料索引功能豐富內容的網頁:

    • 如果是 meta 標記:

      • 每個 meta 標記的 name 屬性都必須設為要建立索引的欄位,且 content 屬性必須設為一或多個以半形逗號分隔的值的字串。
      • Vertex AI Search 支援名稱符合 [a-zA-Z0-9][a-zA-Z0-9-_]* 模式的 meta 標記。請勿使用任何排除不支援的中繼標記

        如果 meta 代碼名稱含有特殊字元 (例如半形冒號 :),您必須在結構定義中選擇其他 ID 來代表該代碼,然後在結構定義的 siteSearchMetatagName 欄位中指定 meta 代碼的確切名稱。

    • 如為 PageMap 資料:

      • PageMap 資料必須包含可辨識的 DataObject,其中含有您要建立索引的屬性名稱。DataObject 中的屬性名稱必須設為要建立索引的欄位。
    • 如果是 schema.org 資料:

      • 註解必須採用有效的 JSON-LD、微資料或 RDFa 格式。 詳情請參閱「支援的格式」。
  2. 重新檢索更新後的網頁。

  3. 透過 REST API 查看資料存放區的結構定義

  4. 使用 Google Cloud 控制台或 API 更新資料存放區結構定義。如果選擇透過 API 執行這項操作,請參閱這篇文章,瞭解如何以 JSON 物件的形式提供自己的結構定義。

    1. 針對要設為可搜尋、可擷取或可建立索引的每個自訂屬性,新增物件。
    2. 新增自訂屬性,並將其 type 設為 array
    3. 新增自訂屬性值的資料類型。
    4. siteSearchStructuredDataSources 欄位中指定自訂屬性的來源。
    5. 如果是 schema.org 資料:在 siteSearchSchemaOrgPaths 欄位中,以字串 _root 開頭,指定 schema.org 註解中的屬性路徑。

    以下是網站的結構定義更新範例:

    {
      "type": "object",
      "properties": {
        "CUSTOM_ATTRIBUTE": {
          "type": "array",
          "items": {
            "type": "DATA_TYPE",
            "searchable": true,
            "retrievable": true,
            "indexable": true,
            "siteSearchMetatagName": "METATAG_NAME",
            "siteSearchStructuredDataSources": ["STRUCTURED_DATA_SOURCE_1", "STRUCTURED_DATA_SOURCE_2"]
          }
        }
      },
      {
        "IDENTIFIER_FOR_SCHEMA_ORG_FIELD": {
          "type": "array",
          "items": {
            "type": "DATA_TYPE_SCHEMA_ORG_FIELD",
            "searchable": true,
            "retrievable": true,
            "indexable": true,
            "siteSearchSchemaOrgPaths": ["_root.PATH_TO_THE_SCHEMA_ORG_FIELD"]
          }
        }
      },
      "$schema": "https://json-schema.org/draft/2020-12/schema"
    }

    更改下列內容:

    • CUSTOM_ATTRIBUTEname 屬性的值。 例如:

      • 如要使用定義為 <meta name="department" content="eng, infotech">meta 標記,請使用 department
      • 如果 PageMap 屬性定義為 <Attribute name="rating">4.9</Attribute>,請使用 rating

      有時您想新增至結構定義的 meta 標記名稱不符合 [a-zA-Z0-9][a-zA-Z0-9-_]* 模式,且包含特殊字元,例如半形冒號 :。在這種情況下,請指定代表 meta 標記名稱的自訂屬性,然後在 siteSearchMetatagName 欄位中指定確切的 meta 標記名稱。舉例來說,如果您的 meta 標記名稱為 og:updated_time,請在 CUSTOM_ATTRIBUTE 欄位中使用 og_updated_time 做為 ID,並在 METATAG_NAME 欄位中使用 og:updated_time

    • DATA_TYPEname 屬性的資料類型。必須是字串、數字或日期時間。例如:

      • 如果 meta 標記定義為 <meta name="department" content="eng, infotech">, 請使用 string
      • 如果 PageMap 屬性定義為 <Attribute name="rating">4.9</Attribute>,請使用 number
      • 如果 PageMap 屬性定義為 <Attribute name="lastPublished">2015-01-01</Attribute>,請使用 datetime

      詳情請參閱 FieldType

    • METATAG_NAME:網頁上顯示的 meta 標記確切名稱。如果想加到結構定義的 meta 標記名稱不符合 [a-zA-Z0-9][a-zA-Z0-9-_]* 模式,且包含特殊字元 (例如半形冒號 :),這個欄位就很有用。在這種情況下,請在 CUSTOM_ATTRIBUTE 中指定代表 meta 標記名稱的自訂屬性,然後在 siteSearchMetatagName 欄位中指定確切的 meta 標記名稱。舉例來說,如果 meta 標記名稱為 og:updated_time,請在 CUSTOM_ATTRIBUTE 欄位中使用 og_updated_time 做為 ID,並在 METATAG_NAME 欄位中使用 og:updated_time。如要新增這個欄位來更新結構定義,您必須使用 v1alpha 端點,而非 v1 端點,才能呼叫 schema 方法。

    • STRUCTURED_DATA_SOURCE_N:陣列,由下列一或多個結構化資料來源組成,其中可找到 CUSTOM_ATTRIBUTE 屬性:

      • 如果可以將自訂屬性視為 meta 標記,請指定 METATAGS
      • 如果自訂屬性可做為 PageMap 屬性,請指定 PAGEMAP
      • 如果自訂屬性可做為 schema.org 資料,請指定 SCHEMA_ORG
      • 如果缺少 siteSearchStructuredDataSources 欄位或該欄位留空,系統會將所有三個資料來源的值合併至陣列。
    • IDENTIFIER_FOR_SCHEMA_ORG_FIELD:自訂 ID,用來表示 schema.org 欄位。不必與網頁上 schema.org 註解中的欄位名稱完全相同。舉例來說,如果欄位的路徑為 _root.nutrition.calories,則 ID 可以是 calorific_valuenutrition_value

    • DATA_TYPE_SCHEMA_ORG_FIELD:schema.org 欄位的資料類型。必須是字串、數字或日期時間。例如:

      • 如要為定義為「熱量」的 schema.org 欄位提供值:「240 大卡」,請使用 string
      • 針對定義為「熱量」的 schema.org 欄位:240, 請使用 number
      • 如果是定義為「foundingDate」的 schema.org 欄位:「1991-05-01」, 請使用 datetime

      詳情請參閱 FieldType

    • PATH_TO_THE_SCHEMA_ORG_FIELD:schema.org 欄位中需要存取的單一欄位路徑。每個巢狀層級後方都會使用點分隔符號指定。您必須指定存取必要欄位的完整路徑。舉例來說,如果欄位 ratingValue 巢狀內嵌於 aggregateRating 欄位中,您可以將路徑指定為 _root.aggregateRating.ratingValue

更新網站結構化資料後,系統會自動重新建立網站索引。 這項作業需要長時間執行,可能需要數小時才能完成。

後續步驟

使用已建立索引的中繼資料執行下列操作: