使用 Amazon 搜尋資料 CloudSearch - Amazon CloudSearch

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

使用 Amazon 搜尋資料 CloudSearch

您可以在透過主控台設定索引選項或將資料上傳至搜尋網域時,將 DynamoDB 表指定為來源。這可讓您快速設定搜尋網域,以實驗搜尋 DynamoDB 資料庫表格中儲存的資料。

為使您的搜尋網域與資料表的變更保持同步,您可以同時傳送更新至資料表和您的搜尋網域,或者定期將整個資料表載入新的搜尋網域。

設定 Amazon CloudSearch 網域以搜尋 DynamoDB 資料

設定搜尋網域以搜尋 DynamoDB 資料最簡單的方法是使用 Amazon CloudSearch 主控台。主控台的設定精靈會分析您的資料表資料,並根據資料表中的各項屬性就索引選項提供建議。您可以修改建議的組態,控制要對哪些資料表屬性編製索引。

注意

若要從 DynamoDB 上傳資料,您必須擁有存取服務和要上傳之資源的權限。如需詳細資訊,請參閱使用IAM來控制 DynamoDB 資源的存取

當您從 DynamoDB 表自動設定搜尋網域時,最多可將 200 個唯一屬性對應至索引欄位。您無法為搜尋網域設定 200 個以上的欄位,因此您只能從具有 200 個或更少屬性的 DynamoDB 表格上傳資料。) 當 Amazon CloudSearch 偵測到具有少量不同值的屬性時,該欄位會在建議的組態中啟用 Facet。

重要

當您使用 DynamoDB 表格設定網域時,資料不會自動上傳到網域以進行索引。您必須在設定網域之後另行上傳資料以編製索引。

使用 Amazon 主控台設定網域以搜尋 DynamoDB CloudSearch

您可以使用 Amazon CloudSearch 主控台分析 DynamoDB 表格中的資料,以設定搜尋網域。無論資料表大小如何,從資料表讀取的資料最多為 5 MB。默認情況下,Amazon 從表的開頭 CloudSearch 讀取。您可以指定起始索引鍵,從某一特定項目開始讀取。

若要使用 DynamoDB 表格設定搜尋網域
  1. https://console.aws.amazon.com/cloudsearch/家打開 Amazon CloudSearch 控制台。

  2. 在左側導覽窗格中,選擇 [網域]。

  3. 選擇要開啟其詳細資料面板的網域名稱。

  4. 轉到索引選項選項卡,然後選擇配置嚮導

  5. 選取 Amazon DynamoDB

  6. 選取您要分析的 DynamoDB 資料表。

    • 若要限制從資料表讀取時可耗用的讀取容量單位,請輸入您要使用的讀取容量單位百分比上限。

    • 若要從特定項目開始讀取,請指定 Start 雜湊鍵。如果資料表使用雜湊與範圍類型的主索引鍵,則一併指定該項目的雜湊屬性和範圍屬性。

  7. 選擇 Next (下一步)

  8. 檢閱建議的組態。您可以編輯各欄位及加入其他欄位。

  9. 完成後,選擇 [確認]。

  10. 如果您尚未將資料上傳至您的網域,請清除 [立即執行索引] 核取方塊以結束而不建立索引。如果您已完成設定變更,且已準備好使用新組態為資料建立索引,請確定已選取 [立即執行索引]。當您準備好套用變更時,請選擇 [完成]。

將資料 CloudSearch 從 DynamoDB 資料上傳到 Amazon

您可以透過 Amazon CloudSearch 主控台或使用 Amazon CloudSearch 命令列工具將 DynamoDB 資料上傳到搜尋網域。當您從 DynamoDB 表格上傳資料時,Amazon 會 CloudSearch 將其轉換為文件批次,以便編製索引。您要由網域組態選擇為各項屬性定義索引欄位。如需詳細資訊,請參閱設定 Amazon CloudSearch 網域以搜尋 DynamoDB 資料

您可以將資料從多個 DynamoDB 表格上傳到同一個 Amazon CloudSearch 網域。不過請切記,所有資料表最多總共只能上傳 200 項屬性。如果多個上傳的資料表內出現具有相同索引鍵的項目,最後套用的項目將覆寫所有先前的版本。

將表格資料轉換為文件批次時,Amazon CloudSearch 會為從表格中讀取的每個項目產生一份文件,並將每個項目屬性表示為文件欄位。每份文件獨一無二的 ID 是從 docid 項目屬性讀取 (若有) 或根據主索引鍵指派英數字元值。

當 Amazon CloudSearch 生成表項目的文檔:

  • 各組字串和各組數字以多值欄位表示。如果 DynamoDB 集合包含超過 100 個值,則只有前 100 個值會新增至多值欄位。

  • 會忽略 DynamoDB 進位屬性。

  • 屬性名稱經過修改,以符合 Amazon 欄位名稱的 CloudSearch 命名慣例:

    • 所有大寫字母轉換成小寫。

    • 如果 DynamoDB 屬性名稱不是以字母開頭,則欄位名稱會以前綴。f_

    • a-z、0-9 和 _ (底線) 除外的任何字元皆以底線取代。若如此轉換會造成欄位名稱重複,欄位名稱後面將附加一個數字以示區別。例如,屬性名稱 håth-thát 將分別對應至 h_th_t1h_t2

    • 如果 DynamoDB 屬性名稱超過 64 個字元,則屬性名稱的前 56 個字元會與完整屬性名稱的 8 個字元MD5雜湊連接起來,形成欄位名稱。

    • 如果屬性名稱是 body,其將對應至欄位名稱 f_body

    • 如果屬性名稱是 _score,其將對應至欄位名稱 f_ _score

  • 數字屬性會對應至 Amazon CloudSearch int 欄位,且這些值會轉換為 32 位元不帶正負號的整數:

    • 如果數字屬性包含小數值,將僅存放其值的整數部分。小數點右邊的部分一概捨棄。

    • 如果值過大而無法存放為不帶正負號的整數,將截斷其值。

    • 負整數將視為不帶正負號的正整數。

透過 Amazon 主控台將 DynamoDB 資料上傳到網域 CloudSearch

您可以使用 Amazon CloudSearch 主控台將最多 5 MB 的資料從 DynamoDB 表格上傳到搜尋網域。

若要使用主控台上傳 DynamoDB 資料
  1. https://console.aws.amazon.com/cloudsearch/家打開 Amazon CloudSearch 控制台。

  2. 在左側導覽窗格中,選擇 [網域]。

  3. 選擇要開啟其組態的網域名稱。

  4. 選擇動作上載文件

  5. 選取 Amazon DynamoDB

  6. 從下拉式清單中,選取包含您資料的 DynamoDB 表格。

    • 若要限制從資料表讀取時可耗用的讀取容量單位,請輸入讀取容量單位百分比上限。

    • 若要從特定項目開始讀取,請指定 Start 雜湊鍵。如果資料表使用雜湊與範圍類型的主索引鍵,則一併指定該項目的雜湊屬性和範圍屬性。

  7. 完成指定表格選項後,請選擇 [下一步]。

  8. 查看將要上傳的項目。您也可以選擇下載產生的文件批次來儲存產生的文件批次。然後選擇「上傳文件」。

使用 DynamoDB 表格同步處理搜尋網域

若要讓搜尋網域與 DynamoDB 表的更新保持同步,您可以透過程式設計方式追蹤更新並套用至網域,或定期建立新網域並重新上傳整個表格。如果您有大量資料,最好依照既定計畫追蹤及套用更新。

依照既定計畫同步更新

若要將變更和新增項目同步至 DynamoDB 表格,您可以建立個別的更新表格來追蹤正在搜尋之表格的變更,並定期將更新表格的內容上傳至對應的搜尋網域。

若要從搜尋網域移除文件,您必須產生並上傳含有每一份刪除的文件各項刪除操作的文件批次。一種選擇是使用單獨的 DynamoDB 表來追蹤已刪除的項目、定期處理表格以產生批次刪除作業,以及將批次上傳至搜尋網域。

為確保在初次資料上傳過程中不致遺失任何所做的變更,您必須於初次資料上傳之前開始收集各項追蹤變更。雖然您可以使用相同的資料更新某些 Amazon CloudSearch 文件,但確保不會遺失任何變更,且搜尋網域包含每個文件的 up-to-date 版本。

您應同步更新的頻率取決於變更量的多寡以及您容許更新延遲的程度。其中一種方法是累積一段固定期間的變更,並於該期間結束時上傳各項變更及刪除該期間的追蹤資料表。

例如,若要每天同步處理一次變更和新增項目,您可以在每天開始時建立名為 update tes_ YYYY _MM_DD 的表格來收集每日更新。在一天結束時,您將更新 _ YYYY _MM_DD 表上傳到您的搜尋網域。上傳完成之後,您即可刪除此更新資料表並再建立一個新的資料表供隔天使用。

切換到新的搜尋網域

若您不想要追蹤個別的更新並套用至您的資料表,也可以定期將整個資料表載入新的搜尋網域,然後將您的查詢流量切換到該新網域。

切換到新的搜尋網域
  1. 建立新的搜尋網域並複製現有網域的組態。

  2. 將整個 DynamoDB 表格上傳至新網域。如需詳細資訊,請參閱將資料 CloudSearch 從 DynamoDB 資料上傳到 Amazon

  3. 新網域處於作用中狀態之後,請更新將查詢流量導向至舊搜尋網域的DNS項目,以指向新網域。例如,如果您使用 Amazon Route 53,只需使用新的搜尋服務端點更新資料集即可。

  4. 刪除舊有網域。