本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 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
文字欄位中取得搜尋點擊的反白資訊。適用於:text
、text-array
。 -
FacetEnabled
您可以取得任何欄位的 Facet 資FacetEnabled
訊。文字欄位無法用於面向分類。適用於:int
、int-array
、date
、date-array
、double
、double-array
、latlon
、literal
、literal-array
。 -
ReturnEnabled
您可以使用搜尋結果擷取任何ReturnEnabled
欄位的值。請注意,這將導致您的索引大小增加,以致可能會增加您運行網域的成本。如果可行,最好從外部來源擷取大量資料,而不要將其內嵌於您的索引。由於文件更新套用至整個網域需要一些時間,像定價資訊之類的重要資料應使用傳回的文件 ID 從外部來源擷取。適用於:int
、int-array
、date
、date-array
、double
、double-array
、latlon
、literal
、literal-array
、text
、text-array
。 -
SearchEnabled
您可以搜尋任何SearchEnabled
欄位的內容。文字欄位一律可供搜尋。適用於:int
、int-array
、date
、date-array
、double
、double-array
、latlon
、literal
、literal-array
、text
、text-array
。 -
SortEnabled
您可以使用任何欄位,按字母順序或數字排序搜尋結果。SortEnabled
陣列類型的欄位不得為SortEnabled
。唯有啟用排序的數值欄位才可用於運算式。適用於:int
、date
、latlon
、double
、literal
、text
。
您也可以指定任何欄位的預設值和來源。如果您在運算式中使用數值欄位但每份文件皆未出現該欄位,指定預設值即尤為重要。指定來源便可在各個欄位間複製資料,讓您能夠為各欄位設定不同的選項,以不同的方式使用同一份來源資料。您可以使用萬用字元 (*) 指定來源名稱,從符合指定模式的所有欄位複製資料。
當您新增欄位或修改現有欄位時,您必須明確發出要求,以便在完成設定變更後重新索引資料。如需詳細資訊,請參閱 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 主控台設定個別欄位
設定新的索引欄位
-
在 https://console.aws.amazon.com/cloudsearch/home
打開 Amazon CloudSearch 控制台。 -
在左側導覽窗格中選擇 Domains (網域)。
-
按一下您要設定的網域名稱,然後前往索引選項標籤。
-
選擇 [新增索引欄位],將欄位規格新增至清單。
-
指定欄位的唯一名稱,然後選取欄位類型。欄位名稱必須以字母開頭,長度至少 3 個字元且不超過 64 個字元。允許的字元為:a-z (小寫字母)、0-9 和 _ (底線)。名稱 score 是保留項目,不得做為欄位名稱使用。
-
選取您要為欄位啟用的查詢詳細資訊。如需詳細資訊,請參閱 configure indexing options。
-
選取要用於每個文字欄位的分析規則。分析方案指定了編製索引期間所使用的特定語言文字處理選項。預設情況下,文字欄位將使用
_en_default_
分析方案。如需詳細資訊,請參閱 設定分析方案。 -
為欄位指定預設值 (選用)。當文件資料中未指定該欄位的值時,便會使用此值。
-
選擇性地在 「來源」 欄位中新增其他欄位。
-
選擇提交。
注意
當您新增欄位或修改現有欄位時,您必須明確發出要求,以便在完成設定變更後重新索引資料。如需詳細資訊,請參閱 rebuild the index。
使用 AWS 開發套件設定 Amazon CloudSearch 索引欄位
AWS 開發套件 (Android 和 iOS 開發套件除外) 支援 Amazon CloudSearch 設定 API 中定義的所有 Amazon CloudSearch 動作,包括。DefineIndexField
如需安裝與使用 AWS 開發套件的詳細資訊,請參閱 AWS 軟體開發套件