移轉至 Amazon CloudSearch - Amazon CloudSearch

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

移轉至 Amazon CloudSearch

Amazon CloudSearch 2013-01-01 API 提供多項新功能,包括支援多國語言、反白呈現結果中的搜尋詞彙,以及取得建議。若要使用這些功能,您應建立和設定新的 2013-01-01 搜尋網域、修改資料流程以使用 2013-01-01 資料格式填入新網域,並將您的查詢流程更新為提交 2013-01-01 請求格式的請求。本遷移指南摘列 API 所做的變更,並重點描述最有可能對您的應用程式造成影響的部分。

建立 Amazon CloudSearch 網域

如果您曾在 2013-01-01 API 推出之前建立 Amazon CloudSearch 網域,如今建立新網域時便可選擇要使用哪個 API 版本。若要透過主控台建立 2013-01-01 網域,請在「建立網域精靈」中選取 2013-01-01 版本。若要從命令列建立 2013-01-01 網域,請下載並安裝 AWS CLI,然後執行aws cloudsearch create-domain命令。

注意

若要建立 2013-01-01 網域並與其互動,您必須使用 AWS CLI 工具。若要建立 2011-01-01 網域並與其互動,您必須使用 v1 工具。

主題

    設定 Amazon CloudSearch 網域

    您可以透過主控台、命令列工具或 AWS 開發套件設定 2013-01-01 網域。2013-01-01 網域支援以下幾個新的組態選項:

    • 分析方案-您將設定分析方案以指定texttext-array欄位。Amazon CloudSearch 現已支援 33 種語言,以及適用於多國語言欄位的選項。如需更多詳細資訊,請參閱 設定分析方案。如需支援的語言完整清單,請參閱支援的語言

    • 可用性選項-您可以啟用異地同步備份選項,將網域擴展到第二個可用區域,藉此確保發生服務中斷時仍能運作。如需更多詳細資訊,請參閱 設定可用性選項

    • 擴展選項-您可以設定所需的執行個體類型和所需的複寫計數,藉此增加上傳容量或搜尋容量、加速搜尋請求並提升容錯能力。如需更多詳細資訊,請參閱 在 Amazon 中設定擴展選項 CloudSearch

    • 建議者-您可以設定建議者實作自動完成功能。如需更多詳細資訊,請參閱 配置 Amazon 的建議者 CloudSearch

    Amazon CloudSearch 組態服務存取權是透過 IAM 管理,現可讓您控制對特定組態動作的存取權。請注意,Amazon CloudSearch ARN 也已變更。網域的文件端點和搜尋端點存取權則是透過 Amazon CloudSearch 組態服務進行管理。如需更多詳細資訊,請參閱 configure access policies

    2013-01-01 網域還支援一套擴增的索引選項:

    • 分析方案-您將透過為每個欄位指定其分析方案,就個別欄位設定特定語言的文字處理選項。texttext-array欄位。如需更多詳細資訊,請參閱 設定分析方案

    • 欄位類型-亞馬遜雲搜尋現已支援 11 種欄位類型:

      • date - 包含時間戳記。日期和時間是依照 IETF RFC3339 的規範,以 UTC (國際標準時間) 指定 yyyy-mm-ddT00:00:00Z 格式。例如,UTC 1970 年 8 月 23 日下午 5:00 即是:七零八年八月二十三日下午七時。

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

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

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

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

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

      • latlon - 包含儲存為經緯度值組的位置。

      • literal - 包含您希望能夠比對為完全相符的識別符或其他資料。

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

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

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

    • 反白-當欄位啟用反白選項後,您即可擷取摘錄以顯示搜尋詞彙出現於該欄位內的位置。如需更多詳細資訊,請參閱 在亞馬遜雲搜尋中反白呈現搜尋命中項目

    • 來源 - 您可指定來源以便在各個欄位間複製資料,讓您能夠為各欄位設定不同的選項,以不同的方式使用同一份來源資料。

    設定您的 2013-01-01 網域時,請謹記以下幾個事項:

    • 預設情況下,在您新增欄位後,所有適用於該欄位類型的選項都將啟用。這雖然有助於進行開發和測試,但若停用您不需要的選項將可縮減索引的大小並提升效能。

    • 您必須使用單獨的陣列類型欄位做為多值欄位。

    • 唯有單值欄位可啟用排序。

    • 唯有 texttext-array 欄位可啟用反白。

    • 欄位除外的所有欄位皆可啟用面向。texttext-array

    • 常值欄位現已區分大小寫。

    • 您不再需要將浮點值儲存為整數 - 請使用 double 欄位。

    • 您可以使用新的 latlon 欄位類型存放位置。如需更多詳細資訊,請參閱 location-based searching and sorting

    • int 欄位為 64 位元帶正負號的整數。

    • 除了設定預設搜尋的欄位,您也可以由搜尋請求中使用 q.options 參數指定要搜尋哪些欄位。q.options 參數還能讓您為各個欄位指定權重。

    • 對運算式進行排序和設定時,您要使用名稱 _score 參考預設相關性分數。由於相關性演算法有所變更,計算得出的分數將與 2011-01-01 API 的情況不同。如需更多詳細資訊,請參閱 設定運算式

    • 運算式現已支援 lognatan2haversin 函數以及 _score (文字相關性分數) 和 _time (epoch 時間) 變數。如果您將位置存放於 latlon 欄位,即可透過 FIELD.latitudeFIELD.longitude 參考緯度值和經度值。運算式也可以同時參考 intdouble 欄位。以下函數已不再受到支援:cs.text_relevanceerflgammarand,以及time。如需更多詳細資訊,請參閱 設定運算式

    如需如何為 2013-01-01 網域設定索引選項的相關資訊,請參閱configure indexing options。如需如何設定可用性選項、調整規模選項、文字處理選項、建議者及運算式的詳細資訊,請參閱建立和管理搜尋網域

    新的 Amazon CloudSearch 組態服務新增的動作與選項

    2013-01-01 組態服務 API 已增加下列動作:

    • DefineAnalysisScheme

    • DefineExpression

    • DefineSuggester

    • DeleteAnalysisScheme

    • DeleteExpression

    • DeleteSuggester

    • DexcribeAnalysisSchemes

    • DescribeAvailabilityOptions

    • DescribeExpressions

    • DescribeScalingParameters

    • DescribeSuggesters

    • ListDomainNames

    • UpdateAvailabilityOptions

    • UpdateScalingParameters

    deployed 選項已加入至索引欄位、存取政策及建議者的描述動作。將 deployed 選項設為 true 以顯示作用中組態並排除待定變更。

    已淘汰的 Amazon CloudSearch 組態服務動作與選項

    2013-01-01 組態服務 API 已不支援下列動作:

    • DefineRankExpression

    • DescribeRankExpression

    • DeleteRankExpression

    • DescribeDefaultSearchField

    • DescribeStemmingOptions

    • DescribeStopwordOptions

    • DescribeSynonymOptions

    • UpdateDefaultSearchField

    • UpdateStemmingOptions

    • UpdateStopwordOptions

    • UpdateSynonymOptions

    將資料上傳至 Amazon CloudSearch 網域

    使用 2013-01-01 API 時,您不再需要指定文件版本-系統會依收到的順序套用更新。您也不再需要為每份文件指定 lang 屬性 - 您將透過為各個 texttext-array 欄位設定其分析方案,控制特定語言的文字處理方式。

    若要上傳資料至 2013-01-01 網域,您必須:

    • 自您的文件批次剔除 versionlang 屬性。

    • 確認所有的文件欄位皆已對應到針對您的網域所設定的索引欄位。無法辨識的欄位將不再被忽略,而會產生錯誤。

    • 將文件批次發佈至您的 2013-01-01 網域的文件端點。請注意,您必須指定適用於 2013-01-01 的 API 版本。例如,以下請求會將 data1.json 所包含的批次發佈至 doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com 端點。

      curl -X POST --upload-file data1.json doc-movies-123456789012.us-east-1. cloudsearch.amazonaws.com/2013-01-01/documents/batch --header "Content-Type: application/json"

    2013-01-01 API 支援預先調整您的網域規模以增加上傳容量。如果您有大量資料需要上傳,請設定網域的調整規模選項,並選取較大的所需執行個體類型。移至較大的執行個體類型讓您能夠平行上傳多個批次,且能縮短對資料編製索引所花費的時間。如需更多詳細資訊,請參閱 在 Amazon 中設定擴展選項 CloudSearch

    如需資料格式化方式的詳細資訊,請參閱準備您的資料

    搜尋 Amazon CloudSearch 域名

    將現有的 Amazon CloudSearch 網域遷移至 2013-01-01 API 所需的大部分作業,即是更新您的查詢流程以提交 2013-01-01 相容於 2013-01-01 的的搜尋請求。

    • 在所有請求中使用 2013-01-01 API 版本。

    • 所有請求一概使用 q 參數指定搜尋條件。現已不支援 bq 參數。若要使用結構化 (布林值) 搜尋語法,應由請求中指定 q.parser=structured

    • 搜尋請求中不得重複使用同一參數。

    • 萬用字元 (*) 僅在使用 simple 查詢剖析器時才受支援。使用 prefix 運算子搭配結構式查詢剖析器進行字首比對。例如,。q=(prefix 'oce')&q.parser=structured

    • 由搜尋請求中使用欄位名稱 _id 參考文件 ID 欄位。現已不支援 docid 欄位名稱。

    • 使用 range 運算子搜尋欄位以找出落在指定範圍內的值。現已不支援 filter 運算子。

    • 使用新的範圍語法搜尋某個範圍的值,包括存放於 latlon 欄位內的日期和位置。已不支援雙點 (..) 表示法。使用逗號 (,) 分隔上限和下限,然後用方括號或大括號將範圍括住。方括號 ([,]) 表示要含括界限,大括號 ({,}) 則會排除界限。例如,year:2008..2011 現將改以 year:[2008,2011] 表示。開放範圍如 year:..2011 現將改以 year:{,2011] 表示。

    • 使用 term 運算子搜尋欄位以找出特定值。現已不支援 field 運算子。

    • 使用 q.options 參數指定欄位權重。現已不支援 cs.text_relevance 函數。例如,。q.options={fields:['title^2','plot^0.5']}

    • 使用 fq 參數篩選結果,而不會影響相符文件的計分和排序方式。

    • 在字首參數中使用點 (.) 代替連字號 (-):expr.NAMEfacet.FIELDhighlight.FIELD

    • 使用 facet.FIELD 參數指定所有的面向選項。現已不支援 facet-FIELD-top-Nfacet-FIELD-sortfacet-FIELD-constraints 參數。

    • 使用 sort 參數指定您要用於排序的欄位或運算式。sort 參數必須明確指定排序方向。例如,。sort=rank asc, date desc。現已不支援 rank 參數。

    • 由搜尋請求中使用 expr.NAME 定義運算式。現已不支援 rank-RANKNAME 參數。

    • 使用 format=xml 取得 XML 格式的結果。現已不支援 result-type 參數。

    2013-01-01 的搜尋 API 另支援以下幾項新功能:

    • 詞彙增強 — 使用boost選項,以提高查詢的某部分相對於其他部分的重要性。如需更多詳細資訊,請參閱 建構複合查詢

    • 草率的片語搜尋 — 使用near運算子在結構化查詢中搜尋texttext-array欄位,以取得多個字詞及其中包含各字詞彼此相隔在指定距離內的文件。您也可以使用 simple 查詢剖析器,於片語後面附加 ~ 運算子和一個值進行鬆散片語搜尋。如需更多詳細資訊,請參閱 搜尋片語

    • 模糊搜尋 — 使用~運算子使用簡單的查詢剖析器進行模糊搜尋。於字詞後面附加 ~ 運算子和一個值,以表示容許各字詞差別到什麼程度下仍會視為相符。如需更多詳細資訊,請參閱 搜尋個別字詞

    • 高亮度-使用highlight.FIELD參數反白呈現特定欄位內的相符項目。如需更多詳細資訊,請參閱 在亞馬遜雲搜尋中反白呈現搜尋命中項目

    • 自動完成:設定管理員並將要求提交至suggester資源以取得完整查詢句和找到各句子的文件清單。如需更多詳細資訊,請參閱 在 Amazon 中獲取自動完成建議 CloudSearch

    • 部分搜尋結果 — 使用partial=true參數擷取局部結果,當一個或多個索引分割區無法使用時。Amazon CloudSearch 預設只會在每個分割區皆可查詢時才傳回結果。

    • 深度分頁 — 使用cursor參數,當您有大型結果集時對結果進行分頁。如需更多詳細資訊,請參閱 Paginate the results

    • 比對所有文件 - 使用 matchall 結構式查詢運算子擷取索引中的所有文件。

    • 全新查詢剖析器 - 使用 q.parser 參數選擇 Lucene 剖析器 (q.parser=lucene) 或 DisMax 剖析器 (q.parser=dismax) 代替 simple 或結構式剖析器。

    您亦將發現搜尋時的行為有一些變更:

    • 當其後未接空格的界限和期間視為某字詞的一部分時,不會再對字串進行字符化。如需更多詳細資訊,請參閱 Amazon CloudSearch 的文字處理

    • 常值欄位現已區分大小寫。

    • 搜尋回應不再附上排名、比對運算式或 CPU 時間。傳回的狀態資訊只有資源 ID (rid) 和處理時間 (time-ms)。

    • 當您取得 int 欄位的面向資訊時,現已不再傳回 minmax 值。

    如需如何搜尋資料的詳細資訊,請參閱使用 Amazon 搜索您的數據 CloudSearchSearch API

    亞馬遜雲端搜尋新增的參數與選項 2013-01-01

    2013-01-01 的搜尋 API 已增加下列參數:

    • cursor.FIELD

    • expr.NAME

    • facet.FIELD

    • format

    • fq

    • highlight.FIELD

    • partial

    • pretty

    • q.options

    • q.parser

    • return

    • sort

    ~ 運算子已加入至簡易查詢語言,以支援模糊搜尋和鬆散片語搜尋。

    結構式查詢語言已增加下列運算子:

    • boost

    • matchall

    • near

    • phrase

    • prefix

    • range

    • term

    已淘汰的 Amazon CloudSearch 尋參數與選項

    2013-01-01 的搜尋 API 已不再支援下列參數:

    • bq

    • facet-FIELD-top-N

    • facet-FIELD-sort

    • facet-FIELD-constraints

    • rank

    • rank-RANKNAME

    • return-fields

    • result-type

    • t-FIELD

    結構式查詢已不再支援下列運算子和捷徑:

    • field

    • 篩選條件

    • -

    • |

    • +

    • *

    Amazon CloudSearch 的更新限制

    下表摘要說明 Amazon CloudSearch 限制的變更和新增的內容。如需 Amazon CloudSearch 限制的完整清單,請參閱限制

    變更 總結
    保留名稱 score 是唯一的保留名稱。
    傳回資料不受限制 從文字欄位傳回的資料達到 2 KB 時不再截斷。不過請切記,文件大小的上限為 1 MB。
    相關字詞功能、停用詞或同義詞字典不受限制 相關字詞功能、停用詞和同義詞字典是由分析方案進行設定,而分析方案定義的大小並無任何限制。
    欄位值數目上限 陣列類型的欄位最多可包含 1000 個值。
    欄位大小 literal 欄位的大小上限為 4096 個 Unicode 字碼指標。
    Int 欄位範圍 int 欄位可包含落在 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (含) 範圍內的值。
    反白數目上限 搜尋詞彙出現次數可予反白的上限為 5。
    建議者數目上限 每一網域可設定的建議者數目上限為 10。
    一次可擷取的命中數上限 一次可擷取的命中數上限為 10,000。size 參數可包含落在 0 到 10000 範圍內的值。