設定 Amazon CloudSearch 網域的索引欄位 - Amazon CloudSearch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon CloudSearch 網域的索引欄位

凡是您新增至搜尋網域的每份文件都有一組欄位,其中包含可搜尋或傳回的資料。每份文件都必須具有獨一無二的文件 ID 以及至少一個欄位。

您的網域組態需要為呈現於文件中的各個欄位定義其索引欄位。文件若包含無法辨識的欄位便不能上傳。不過,各文件不一定要包含所有欄位,文件可以包含一部分針對網域所設定的欄位。

Amazon CloudSearch 支持以下索引字段類型:

  • date— 包含時間戳記。日期和時間以 UTC(國際標準時間)指定,根據 IETF RFC3339:。yyyy-mm-ddTHH:mm:ss.SSSZ以世界標準時間為例,1970 年 8 月 23 日下午 5 點為:1970-08-23T17:00:00Z。請注意,您也可以在以 UTC 指定時間時指定小數秒數。例如:1967-01-31T23:20:50.650Z.

  • date-array - 可包含多個值的日期欄位。

  • double - 包含雙精度 64 位元浮點值。

  • double-array - 可包含多個值的雙精度欄位。

  • int - 包含 64 位元帶正負號的整數值。

  • int-array - 可包含多個值的整數欄位。

  • latlon - 包含儲存為經緯度值組 (lat, lon) 的位置。

  • literal包含您希望能夠完全匹配的標識符或其他數據。常值欄位區分大小寫。

  • literal-array - 可包含多個值的常值欄位。

  • text - 包含任意英數資料。

  • text-array - 可包含多個值的文字欄位。

正規索引欄位名稱必須以字母開頭,長度至少 3 個字元且不超過 64 個字元。允許的字元為:a-z (小寫字母)、0-9 和 _ (底線)。名稱 score 是保留項目,不得指定做為欄位名稱。所有欄位和運算式的名稱皆必須獨一無二。

動態欄位名稱必須以萬用字元 (*) 開頭或結尾。位於萬用字元前後的字串可包含如同正規索引欄位的一組字元。如需動態欄位的詳細資訊,請參閱在 Amazon CloudSearch 中使用動態欄位

各欄位可供設定的選項因欄位類型而異:

  • HighlightEnabled您可以在任何HighlightEnabled文字欄位中取得搜尋點擊的反白資訊。適用於:texttext-array

  • FacetEnabled您可以取得任何欄位的 Facet 資FacetEnabled訊。文字欄位無法用於面向分類。適用於:intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-array

  • ReturnEnabled您可以使用搜尋結果擷取任何ReturnEnabled欄位的值。請注意,這將導致您的索引大小增加,以致可能會增加您運行網域的成本。如果可行,最好從外部來源擷取大量資料,而不要將其內嵌於您的索引。由於文件更新套用至整個網域需要一些時間,像定價資訊之類的重要資料應使用傳回的文件 ID 從外部來源擷取。適用於:intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-arraytexttext-array

  • SearchEnabled您可以搜尋任何SearchEnabled欄位的內容。文字欄位一律可供搜尋。適用於:intint-arraydatedate-arraydoubledouble-arraylatlonliteralliteral-arraytexttext-array

  • SortEnabled您可以使用任何欄位,按字母順序或數字排序搜尋結果。SortEnabled陣列類型的欄位不得為 SortEnabled。唯有啟用排序的數值欄位才可用於運算式。適用於:intdatelatlondoubleliteraltext

您也可以指定任何欄位的預設值和來源。如果您在運算式中使用數值欄位但每份文件皆未出現該欄位,指定預設值即尤為重要。指定來源便可在各個欄位間複製資料,讓您能夠為各欄位設定不同的選項,以不同的方式使用同一份來源資料。您可以使用萬用字元 (*) 指定來源名稱,從符合指定模式的所有欄位複製資料。

當您新增欄位或修改現有欄位時,您必須明確發出要求,以便在完成設定變更後重新索引資料。如需詳細資訊,請參閱 rebuild the index

重要

如果您變更欄位類型,且索引中的文件包含與新欄位類型不相容的資料,則當您執行索引時,所有正在處理的欄位都會置於FailedToValidate狀態,且索引作業失敗。還原不相容的組態變更,即可成功重新建立索引。若是必要的變更,請務必將不相容的文件從索引中移除,方可使用新的組態。

使用 AWS CLI​ 設定個別索引欄位

您可以使用指aws cloudsearch define-index-field令來設定搜尋網域的個別索引欄位。如需有關安裝與設定 AWS CLI 的資訊,請參閱 AWS Command Line Interface 使用者指南

為您的網域添加索引欄位
  • 執行 aws cloudsearch define-index-field 命令,並使用 --name 選項指定新欄位的名稱,使用 --type 選項指定欄位類型。以下範例會為 movies 網域添加一個 int 欄位名為 year

    aws cloudsearch define-index-field --domain-name movies --name year --type int { "IndexField": { "Status": { "PendingDeletion": false, "State": "RequiresIndexDocuments", "CreationDate": "2014-06-25T23:03:06Z", "UpdateVersion": 15, "UpdateDate": "2014-06-25T23:03:06Z" }, "Options": { "IndexFieldType": "int", "IndexFieldName": "year" } } }
注意

當您新增欄位或修改現有欄位時,您必須明確發出要求,以便在完成設定變更後重新索引資料。如需詳細資訊,請參閱 rebuild the index

使用 Amazon CloudSearch 主控台設定索引欄位

您可以通過 Amazon CloudSearch 控制台中的索引選項面板輕鬆configure individual index fields為您的域。在主控台中設定索引欄位需要 DefineIndexFields 動作,而 AWS CLI 不支援該動作。

使用 Amazon CloudSearch 主控台設定個別欄位

設定新的索引欄位
  1. https://console.aws.amazon.com/cloudsearch/home 打開 Amazon CloudSearch 控制台。

  2. 在左側導覽窗格中選擇 Domains (網域)。

  3. 按一下您要設定的網域名稱,然後前往索引選項標籤。

  4. 選擇 [新增索引欄位],將欄位規格新增至清單。

  5. 指定欄位的唯一名稱,然後選取欄位類型。欄位名稱必須以字母開頭,長度至少 3 個字元且不超過 64 個字元。允許的字元為:a-z (小寫字母)、0-9 和 _ (底線)。名稱 score 是保留項目,不得做為欄位名稱使用。

  6. 選取您要為欄位啟用的查詢詳細資訊。如需詳細資訊,請參閱 configure indexing options

  7. 選取要用於每個文字欄位的分析規則。分析方案指定了編製索引期間所使用的特定語言文字處理選項。預設情況下,文字欄位將使用 _en_default_ 分析方案。如需詳細資訊,請參閱 設定分析方案

  8. 為欄位指定預設值 (選用)。當文件資料中未指定該欄位的值時,便會使用此值。

  9. 選擇性地在 「來源」 欄位中新增其他欄位。

  10. 選擇提交

注意

當您新增欄位或修改現有欄位時,您必須明確發出要求,以便在完成設定變更後重新索引資料。如需詳細資訊,請參閱 rebuild the index

使用 AWS 開發套件設定 Amazon CloudSearch 索引欄位

AWS 開發套件 (Android 和 iOS 開發套件除外) 支援 Amazon CloudSearch 設定 API 中定義的所有 Amazon CloudSearch 動作,包括。DefineIndexField如需安裝與使用 AWS 開發套件的詳細資訊,請參閱 AWS 軟體開發套件