本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon CloudSearch 網域的索引欄位
凡是您新增至搜尋網域的每份文件都有一組欄位,其中包含可搜尋或傳回的資料。每份文件都必須具有獨一無二的文件 ID 以及至少一個欄位。
您的網域組態需要為呈現於文件中的各個欄位定義其索引欄位。文件若包含無法辨識的欄位便不能上傳。不過,各文件不一定要包含所有欄位,文件可以包含一部分針對網域所設定的欄位。
Amazon CloudSearch 支援下列索引欄位類型:
-
date
- 包含時間戳記。根據 IETF RFC3339,日期和時間是以 UTC (國際標準時間) 指定: yyyy-mm-ddTHH:mm:ss.SSSZ
。例如,在 UTC 中,1970 年 8 月 23 日下午 5:00 是: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
—您可以取得任何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 主控台設定個別欄位
設定新的索引欄位
-
開啟 Amazon CloudSearch 主控台,網址為 https://console.aws.amazon.com/cloudsearch/home
://。 -
在左側導覽窗格中選擇 Domains (網域)。
-
按一下您要設定的網域名稱,然後前往索引選項索引標籤。
-
選擇新增索引欄位,將欄位規格新增至清單。
-
為 欄位指定唯一名稱,然後選取欄位類型。欄位名稱必須以字母開頭,長度至少 3 個字元且不超過 64 個字元。允許的字元為:a-z (小寫字母)、0-9 和 _ (底線)。名稱 score 是保留項目,不得做為欄位名稱使用。
-
選取您要為 欄位啟用的查詢詳細資訊。如需詳細資訊,請參閱configure indexing options。
-
選取要用於每個文字欄位的分析方案。分析方案指定了編製索引期間所使用的特定語言文字處理選項。預設情況下,文字欄位將使用
_en_default_
分析方案。如需詳細資訊,請參閱設定分析方案。 -
為欄位指定預設值 (選用)。當文件資料中未指定該欄位的值時,便會使用此值。
-
或者,在來源欄位中新增其他欄位。
-
選擇提交。
注意
當您新增欄位或修改現有欄位時,您必須在完成組態變更時明確發出請求,以重新索引資料。如需詳細資訊,請參閱rebuild the index。
使用 AWS SDKs設定 Amazon CloudSearch 索引欄位
AWS SDKs (Android 和 iOS SDKs除外) 支援 Amazon CloudSearch 組態 API 中定義的所有 Amazon CloudSearch 動作,包括 DefineIndexField
。如需安裝與使用 AWS 開發套件的詳細資訊,請參閱 AWS 軟體開發套件