

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

# 什麼是 Amazon CloudSearch？
<a name="what-is-cloudsearch"></a>

**重要**  
Amazon CloudSearch 不再提供給新客戶。Amazon CloudSearch 的現有客戶可以繼續照常使用服務。[進一步了解。](https://aws.amazon.com/blogs/big-data/transition-from-amazon-cloudsearch-to-amazon-opensearch-service/)

Amazon CloudSearch 是雲端中全受管的服務，可讓您輕鬆地設定、管理和擴展網站或應用程式的搜尋解決方案。

 使用 Amazon CloudSearch，您可以搜尋大量的資料集合，例如網頁、文件檔案、論壇文章或產品資訊。您可以快速加入搜尋功能，無須具備搜尋專長或煩惱硬體佈建、設定及維護。隨著資料量和流量的波動，Amazon CloudSearch 會擴展以滿足您的需求。

**注意**  
本文件說明 Amazon CloudSearch 2013-01-01 API。如果您有 2011-02-01 搜尋網域且需要參考舊文件，您可以下載 [2011-02-01 開發人員指南](https://s3.amazonaws.com/awsdocs/cloudsearch/2011-02-01/cloudsearch-dg-2011-02-01.pdf)的 PDF。

您可以使用 Amazon CloudSearch 來索引和搜尋結構化資料和純文字。Amazon CloudSearch 功能：
+ 特定語言文字處理全文搜尋
+ 布林值搜尋
+ 字首搜尋
+ 範圍搜尋
+ 增加詞彙相關度
+ 面向分類
+ 反白
+ 自動完成建議

您可以取得 JSON 或 XML 格式的搜尋結果，依欄位值排序和篩選結果，並將結果按字母順序、數字大小或根據自訂運算式進行排序。

 若要使用 Amazon CloudSearch 建置搜尋解決方案，請執行下列步驟：
+ **建立並設定搜尋網域。**搜尋網域包含可供搜尋的資料以及處理搜尋請求的搜尋執行個體。如果您有多組資料想要供予搜尋，則可以建立多個搜尋網域。
+ **將您要搜尋的資料上傳至您的網域。**Amazon CloudSearch 會將您的資料編製索引，並將搜尋索引部署至一或多個搜尋執行個體。
+ **搜尋您的網域。**您將以 HTTP/HTTPS GET 請求的形式向您網域的搜尋端點傳送搜尋請求。

**Topics**
+ [您是初次使用 Amazon CloudSearch 嗎？](#new-to-cloudsearch)
+ [搜尋的運作方式](how-search-works.md)
+ [Amazon CloudSearch 中的自動擴展](concepts-scaling.md)
+ [存取 Amazon CloudSearch](#accessing-cloudsearch)
+ [常見問答集](#faq)

## 您是初次使用 Amazon CloudSearch 嗎？
<a name="new-to-cloudsearch"></a>

如需 Amazon CloudSearch、服務重點和定價資訊的高階概觀，請參閱 [Amazon CloudSearch 詳細資訊頁面](https://aws.amazon.com/cloudsearch/)。如果您準備好開始使用 Amazon CloudSearch，您應該從 開始[Amazon CloudSearch 入門](getting-started.md)。

您可以透過 、 AWS 管理主控台 AWS SDKs或 與 Amazon CloudSearch 互動 AWS CLI。雖然您也可以直接向 Amazon CloudSearch 提交 API 請求，但軟體SDKs會視需要 AWS CLI 自動簽署您的請求，並提供與其他 AWS 服務一起與 Amazon CloudSearch 網域互動的集中式工具。如需 AWS 開發套件的相關資訊，請參閱 [Amazon Web Services 工具](https://aws.amazon.com/tools/)。如需安裝和使用 的詳細資訊 AWS CLI，請參閱 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

如需設定和管理搜尋網域、將資料放入 Amazon CloudSearch、提交搜尋請求以及處理回應的詳細資訊，請參閱：
+ [準備您的資料](preparing-data.md)- 如何格式化資料，以便將其上傳至 Amazon CloudSearch 網域以編製索引
+ [設定索引欄位](configuring-index-fields.md)- 如何設定 Amazon CloudSearch 網域的索引選項
+ [使用 Amazon CloudSearch 搜尋您的資料](searching.md)- 如何使用 Amazon CloudSearch 查詢語言
+ [控制搜尋結果](controlling-search-results.md)- 如何排序、篩選和分頁搜尋結果

# 搜尋的運作方式
<a name="how-search-works"></a>

您想要搜尋的整組資料 (有時稱為*「主體」*) 可能包含非結構化的全文字文件、採用標記語言如 XML 等格式的半結構化文件，或是符合嚴謹資料模型的結構化資料。您希望能夠搜尋的每個項目 (如論壇文章或網頁) 都是以一份文件表示。每份文件都具有獨一無二的 ID 和一個或多個欄位，其中包含您要搜尋及納入結果的資料。

若要讓您的資料可搜尋，請以 JSON 或 XML 表示為一批文件，並將批次上傳至您的搜尋網域。然後，Amazon CloudSearch 會根據網域的組態選項，從您的文件資料產生搜尋索引。您要針對該份索引提交查詢，以找出符合特定搜尋條件的文件。

隨著資料變更，您需要提交更新，以便就您的索引新增、更動或刪除文件。系統會依收到的順序持續套用更新。

如需如何將資料格式化的相關資訊，請參閱[準備您的資料](preparing-data.md)。

## Amazon CloudSearch 中的索引
<a name="concepts-indexing"></a>

若要從資料建立搜尋索引，Amazon CloudSearch 需要下列資訊：
+ 您想要搜尋哪些文件欄位？
+ 您想要隨搜尋結果擷取哪些文件欄位值？
+ 哪些文件欄位代表您要用以縮小搜尋範圍和篩選搜尋結果的類別？
+ 應如何處理特定欄位內的文字？

您將透過設定網域組態的索引選項以定義此中繼資料。使用索引選項指定要納入搜尋索引的欄位，並且控制您能夠如何使用這些欄位。

您必須為資料中發生的每個文件欄位設定對應的索引欄位 - 文件欄位與 Amazon CloudSearch 索引中的欄位之間有one-to-one的映射。除了索引欄位名稱，還要指定以下資訊：
+ 索引欄位類型
+ 欄位是否可搜尋 (`text` 和 `text-array` 欄位一律可供搜尋)
+ 欄位是否可做為類別 (面向) 使用
+ 欄位值是否可隨搜尋結果傳回
+ 欄位是否可用於對結果進行排序
+ 對欄位是否可傳回反白句
+ 文件資料中未指定任何值時將使用的預設值

如需如何設定 Amazon CloudSearch 索引欄位的詳細資訊，請參閱 [設定索引欄位](configuring-index-fields.md)。

## Amazon CloudSearch 中的面向
<a name="concepts-facets"></a>

「面向」是一種索引欄位，代表您要用以縮小搜尋範圍和篩選搜尋結果的類別。當您向 Amazon CloudSearch 提交搜尋請求時，您可以請求面向資訊，以了解有多少命中項目在面向中共用相同的值。您可以顯示此資訊以及搜尋結果，並用它讓使用者以互動方式縮小搜尋範圍。(通常稱之為分面瀏覽或分面搜尋。)

面向可以是已在網域組態中啟用面向的任何日期、文字或數值欄位。對於每個面向，Amazon CloudSearch 會計算共用相同值的命中次數。您可以定義儲存貯體來計算面向值特定子集的面向計數。只有具有相符項目的儲存貯體才會包含在構面結果中。

如需如何設定面向的相關資訊，請參閱[設定索引欄位](configuring-index-fields.md)。如需如何利用面向資訊支援分面瀏覽的相關資訊，請參閱[在 Amazon CloudSearch 中取得和使用面向資訊](faceting.md)。

## Amazon CloudSearch 中的文字處理
<a name="concepts-text-processing"></a>

在編製索引期間，Amazon CloudSearch 會根據為 `text-array` 欄位設定的語言特定分析方案來處理 `text`和 欄位的內容。分析方案會控制文字的標準化、字符化和起源方式，並指定索引期間要考慮的任何停止詞或同義詞。Amazon CloudSearch 提供每種支援語言的預設分析方案。如需如何設定自訂分析方案的相關資訊，請參閱[設定分析方案](configuring-analysis-schemes.md)。如需 Amazon CloudSearch 如何標準化和字符化文字，以及在編製文字欄位索引和處理搜尋請求時套用設定的文字選項的詳細資訊，請參閱 [Amazon CloudSearch 中的文字處理](text-processing.md)。

## 在 Amazon CloudSearch 中排序結果
<a name="concepts-result-ranking"></a>

您可透過定義運算式就符合搜尋條件的每份文件計算自訂值，以自訂搜尋結果的排名方式。例如，您可以定義一個表達式，將文件`popularity`欄位中的值以及 Amazon CloudSearch 表達式計算的預設相關性分數納入考量，只是使用標準數值運算子和函數的數值表達式。運算式可參考 `int` 和 `double` 欄位、其他運算式、文件的相關性分數 (\$1score) 以及 epoch 時間 (\$1time)。在提交搜尋請求時，指定您要用於對搜尋結果進行排序的運算式。您的搜尋條件也可以參考運算式。

文件的相關性 `_score` 代表特定的搜尋命中項目與搜尋請求相關的程度。為了計算相關性分數，Amazon CloudSearch 會考慮搜尋詞彙在文件中相對於索引中其他文件出現的次數。

如需如何為您的網域設定運算式的相關資訊，請參閱[設定運算式](configuring-expressions.md)。

## 在 Amazon CloudSearch 中搜尋請求
<a name="concepts-searches"></a>

您將以 HTTP/HTTPS GET 請求的形式向您網域的搜尋端點提交搜尋請求。您可指定各種選項以限制您的搜尋、請求面向資訊、控制排名和指定要由結果傳回的資訊。取得的搜尋結果可為 JSON 或 XML。根據預設，Amazon CloudSearch 會以 JSON 傳回結果。

當您提交搜尋請求時，Amazon CloudSearch 會對搜尋字串執行文字處理。搜尋字串的處理方式如下：
+ 將所有字元轉換成小寫
+ 根據空白字元和標點符號界限將字串拆成單獨的字詞 
+ 將搜尋的欄位列於停用詞清單上的字詞移除
+ 根據為要搜尋之欄位設定的莖和同義詞選項來映射莖和同義詞。

在此預先處理完成後，Amazon CloudSearch 會查詢索引中的搜尋詞彙，並識別符合請求的所有文件。若要產生回應，Amazon CloudSearch 會處理此搜尋命中清單，以篩選和排序相符的文件和運算面向。然後，Amazon CloudSearch 會以 JSON 或 XML 傳回回應。

根據預設，Amazon CloudSearch 會傳回根據命中相關性 \$1scores 排名的搜尋結果。或者，您的請求亦可指定要用於對命中項目進行排序的索引欄位或運算式。例如，您可能希望命中項目按照包含價格的索引欄位或計算熱門程度的運算式排序。

如需如何搜尋、將結果排名及分頁的詳細資訊，請參閱[使用 Amazon CloudSearch 搜尋您的資料](searching.md)。

# Amazon CloudSearch 中的自動擴展
<a name="concepts-scaling"></a>

搜尋網域具有一個或多個搜尋執行個體，各執行個體用於對資料編製索引和處理請求的 RAM 及 CPU 資源有限。網域所需的搜尋執行個體數目取決於集合中的文件，以及搜尋請求的數量和複雜性。

Amazon CloudSearch 可以判斷提供低延遲、高輸送量搜尋效能所需的搜尋執行個體大小和數量。當您上傳資料並設定索引時，Amazon CloudSearch 會建置索引並挑選適當的初始搜尋執行個體類型。當您使用搜尋網域時，Amazon CloudSearch 可以擴展以適應上傳至網域的資料量，以及搜尋請求的數量和複雜性。

當您建立搜尋網域時，系統會為該網域部署單一執行個體。如下圖所示，您的網域至少有一個執行個體。Amazon CloudSearch 會在資料量或流量增加時新增執行個體，以自動擴展網域。

![\[因應資料和流量調整規模\]](http://docs.aws.amazon.com/zh_tw/cloudsearch/latest/developerguide/images/cloudsearch-scaling-diagram.png)


## 因應資料調整規模
<a name="w2aab5c31c13"></a>

當您新增至網域的資料量超過初始搜尋執行個體類型的容量時，Amazon CloudSearch 會將您的搜尋網域擴展為較大的搜尋執行個體類型。當網域超過最大搜尋執行個體類型的容量後，Amazon CloudSearch 會將搜尋索引分割到多個搜尋執行個體。(容納索引分割區所需的搜尋執行個體數目有時稱為網域的*「廣度」*)。

當您網域中的資料量縮減時，Amazon CloudSearch 會將您的網域縮減為較少的搜尋執行個體或較小的搜尋執行個體類型，以將成本降至最低。

**注意**  
如果您的網域已擴展以容納您的索引大小，而且您刪除了大量文件，則下次重建完整索引時，網域會縮減規模。雖然索引會定期重建，但為了盡快縮減規模，您可以在完成刪除文件時明確[執行索引](indexing.md)。

## 因應流量調整規模
<a name="w2aab5c31c15"></a>

隨著搜尋請求量增加或複雜性提高，應付負載需要更強的處理能力。大量文件上傳也會增加網域搜尋執行個體的負載。當搜尋執行個體接近其最大負載時，Amazon CloudSearch 會部署重複的搜尋執行個體，以提供額外的處理能力。(同一型搜尋執行個體的數目有時稱為網域的*「深度」*)。

當流量下降時，Amazon CloudSearch 會移除搜尋執行個體，以將成本降至最低。例如，新網域可能會擴展規模以應付最初湧入的大量文件，並在您完成資料上傳而僅需提交更新之後縮減為原來的規模。

如果您的網域流量突然激增，Amazon CloudSearch 會部署其他搜尋執行個體。不過，設定新的執行個體需要幾分鐘的時間，因而在新的執行個體可開始處理請求之前，您可能會遇到 5xx 錯誤增多的情形。如需如何處理 5xx 錯誤的詳細資訊，請參閱[處理錯誤](error-handling.md)。

請切記，搜尋請求的類型和複雜性會影響整體搜尋效能，且某些情況下將致使網域需要增加搜尋執行個體數目以維持運作。提交大量的小型或單一文件批次可能影響搜尋網域的效能。如需詳細資訊，請參閱[在 Amazon CloudSearch 中調整搜尋請求效能](tuning-search.md)。

## 存取 Amazon CloudSearch
<a name="accessing-cloudsearch"></a>

您可以透過 Amazon CloudSearch 主控台、AWS SDKs或 存取 Amazon CloudSearch AWS CLI。
+ [Amazon CloudSearch 主控台](https://console.aws.amazon.com/cloudsearch/home?region=us-west-2)可讓您輕鬆建立、設定和監控搜尋網域、上傳文件，以及執行測試搜尋。使用 主控台是開始使用 Amazon CloudSearch 的最簡單方法，並提供中央命令中心，讓您持續管理搜尋網域。
+ [AWS SDKs](https://aws.amazon.com/code)支援所有 Amazon CloudSearch API 操作，可讓您使用偏好的技術輕鬆管理和與搜尋網域互動。開發套件會視需要使用您的 AWS 登入資料自動簽署請求。
+ 會[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/)包裝所有 Amazon CloudSearch API 操作，提供簡單的方法來建立和設定搜尋網域、上傳您要搜尋的資料，以及提交搜尋請求。會視需要使用您的 AWS 登入資料 AWS CLI 自動簽署請求。

### Amazon CloudSearch 的區域和端點
<a name="endpoints"></a>

 Amazon CloudSearch 提供區域端點，用於存取組態服務和網域特定的端點，用於存取搜尋和文件服務。

您將使用組態服務建立和管理您的搜尋網域。區域專屬組態服務端點的格式如下：`cloudsearch.region.amazonaws.com`。例如 `cloudsearch.us-east-1.amazonaws.com`。如需支援的區域最新清單，請參閱《[》中的](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region)區域與端點 AWS 一般參考。

 若要存取 Amazon CloudSearch 搜尋和文件服務，您可以使用個別的網域特定端點：
+ `http://doc-domainname-domainid.us-east-1.cloudsearch.amazonaws.com`- 網域的文件服務端點用於上傳文件
+ `http://search-domainname-domainid.us-east-1.cloudsearch.amazonaws.com`- 網域的搜尋端點用於提交搜尋請求

### 簽署 Amazon CloudSearch 請求
<a name="signing-requests"></a>

如果您使用的是 AWS 提供 SDK 的語言，我們建議您使用 SDK 提交 Amazon CloudSearch 請求。與直接使用 Amazon CloudSearch APIs 相比，所有 AWS SDKs都大幅簡化簽署請求的程序，並為您節省大量時間。開發套件更與您的開發環境方便整合，讓您能夠輕鬆存取相關命令。您也可以使用 Amazon CloudSearch 主控台和 AWS CLI 提交已簽署的請求，無需額外努力。

如果您選擇直接呼叫 Amazon CloudSearch APIs，則必須簽署自己的請求。組態服務請求一律務必簽署。必須簽署上傳、搜尋和建議請求，除非您為這些服務設定匿名存取。若要簽署請求，請您使用密碼編譯雜湊函數來計算數位簽章，其根據輸入傳回雜湊值。此輸入包含請求和私密存取金鑰的文字。雜湊函數會傳回一個雜湊值，您將此值包含在請求中做為簽章。該簽章是請求的 Authorization 標頭的一部分。收到請求後，Amazon CloudSearch 會使用您用來簽署請求的相同雜湊函數和輸入來重新計算簽章。如果產生的簽章符合請求中的簽章，Amazon CloudSearch 會處理請求。否則，請求會遭到拒絕。

Amazon CloudSearch 支援使用 AWS Signature 第 4 版進行身分驗證。如需詳細資訊，請參閱 [Signature 第 4 版簽署程序](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)。

## 常見問答集
<a name="faq"></a>

「目前客戶」的截止點是什麼？

我們建立了已使用 Amazon CloudSearch 的帳戶 IDs 允許清單。不過，我們將允許列出先前使用 Amazon CloudSearch 的任何新客戶帳戶。如果您遇到困難，請提交支援票證。

我們所謂的服務「存取」是什麼意思？

目前的客戶可以執行先前可以執行的任何動作。唯一的變更是非目前客戶無法存取 Amazon CloudSearch。

如果現有 Amazon CloudSearch 客戶已經是 alreadyAmazon CloudSearch，他們是否可以建立新的儲存庫？

是。如果您遇到困難，請提交支援票證