

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

# 設定 Amazon CloudSearch 網域的索引欄位
<a name="configuring-index-fields"></a>

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

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

**Topics**
+ [使用 設定個別索引欄位 AWS CLI](#configuring-index-fields-individually-clt)
+ [使用 Amazon CloudSearch 主控台設定索引欄位](#configuring-index-fields-console)
+ [DefineIndexField](#configuring-index-fields-sdk)

Amazon CloudSearch 支援下列索引欄位類型：
+ `date`- 包含時間戳記。根據 [IETF RFC3339](http://tools.ietf.org/html/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 和 \$1 (底線)。名稱 *score* 是保留項目，不得指定做為欄位名稱。所有欄位和運算式的名稱皆必須獨一無二。

動態欄位名稱必須以萬用字元 (\$1) 開頭或結尾。位於萬用字元前後的字串可包含如同正規索引欄位的一組字元。如需動態欄位的詳細資訊，請參閱[在 Amazon CloudSearch 中使用動態欄位](using-dynamic-fields.md)。

各欄位可供設定的選項因欄位類型而異：
+ `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`。

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

當您新增欄位或修改現有欄位時，您必須在完成組態變更時明確發出請求，以重新索引資料。如需詳細資訊，請參閱[對文件資料編製索引](indexing.md)。

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

## 使用 設定個別索引欄位 AWS CLI
<a name="configuring-index-fields-individually-clt"></a>

您可以使用 `aws cloudsearch define-index-field`命令來設定搜尋網域的個別索引欄位。如需有關安裝和設定 的資訊 AWS CLI，請參閱 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

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

  ```
  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"
          }
      }
  }
  ```

**注意**  
當您新增欄位或修改現有欄位時，您必須在完成組態變更時明確發出請求，以重新索引資料。如需詳細資訊，請參閱[對文件資料編製索引](indexing.md)。

## 使用 Amazon CloudSearch 主控台設定索引欄位
<a name="configuring-index-fields-console"></a>

您可以透過 Amazon CloudSearch 主控台中的**索引選項**面板，輕鬆地[configure individual index fields](#configuring-index-fields-individually-console)為您的網域建立索引。在主控台中設定索引欄位需要 `DefineIndexFields`動作，而 AWS CLI 不支援。

### 使用 Amazon CloudSearch 主控台設定個別欄位
<a name="configuring-index-fields-individually-console"></a>

**設定新的索引欄位**

1. 開啟 Amazon CloudSearch 主控台，網址為 [https://console.aws.amazon.com/cloudsearch/home](https://console.aws.amazon.com/cloudsearch/home)：//。

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

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

1. 選擇**新增索引欄位**，將欄位規格新增至清單。

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

1. 選取您要為 欄位啟用的查詢詳細資訊。如需詳細資訊，請參閱[設定索引欄位](#configuring-index-fields)。

1. 選取要用於每個文字欄位的分析方案。分析方案指定了編製索引期間所使用的特定語言文字處理選項。預設情況下，文字欄位將使用 `_en_default_` 分析方案。如需詳細資訊，請參閱[設定分析方案](configuring-analysis-schemes.md)。

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

1. 或者，在**來源欄位中新增其他欄位**。

1. 選擇**提交**。

**注意**  
當您新增欄位或修改現有欄位時，您必須在完成組態變更時明確發出請求，以重新索引資料。如需詳細資訊，請參閱[對文件資料編製索引](indexing.md)。

## 使用 AWS SDKs設定 Amazon CloudSearch 索引欄位
<a name="configuring-index-fields-sdk"></a>

AWS SDKs (Android 和 iOS SDKs除外） 支援 Amazon CloudSearch 組態 API 中定義的所有 Amazon CloudSearch 動作，包括 `DefineIndexField`。如需安裝與使用 AWS 開發套件的詳細資訊，請參閱 [AWS 軟體開發套件](https://aws.amazon.com/code)。