在亞馬遜 OpenSearch 服務中索引數據 - Amazon OpenSearch 服務

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

在亞馬遜 OpenSearch 服務中索引數據

由於亞馬遜 OpenSearch 服務使用 REST API,因此存在許多方法來索引文檔。您可以使用標準用戶端,例如 Curl 或任何可以傳送 HTTP 請求的程式設計語言。為了進一步簡化與它交互的過程, OpenSearch Service 有許多編程語言的客戶端。進階使用者可以直接跳到將串流資料載入 Amazon OpenSearch 服務

我們強烈建議您使用 Amazon OpenSearch 擷取資料,這是在服務內 OpenSearch 建的全受管資料收集器。如需詳細資訊,請參閱 Amazon OpenSearch 擷取

如需索引的簡介,請參閱OpenSearch文件

索引的命名限制

OpenSearch 服務索引具有下列命名限制:

  • 所有字母必須小寫。

  • 索引名稱的最開頭不可以是 _-

  • 索引名稱不可以包含空格、逗號、:"*+/\|?#><

請勿在索引、類型或文件 ID 名稱中包含敏感資訊。 OpenSearch 服務會在其統一資源識別碼 (URI) 中使用這些名稱。伺服器和應用程式通常會記錄 HTTP 請求,如果 URI 包含敏感資訊,這會導致不必要的資料暴露:

2018-10-03T23:39:43 198.51.100.14 200 "GET https://opensearch-domain/dr-jane-doe/flu-patients-2018/202-555-0100/ HTTP/1.1"

即使您沒有檢視相關 JSON 文件的許可,您可以從此仿造日誌列推斷出 Doe 醫生的其中一名病人 (其電話號碼為 202-555-0100) 在 2018 年患有流感。

如果 OpenSearch 服務在索引名稱中偵測到真實或適當的 IP 位址 (例如,my-index-12.34.56.78.91),它會遮罩 IP 位址。呼叫 _cat/indices 產生下列回應︰

green open my-index-x.x.x.x.91 soY19tBERoKo71WcEScidw 5 1 0 0 2kb 1kb

為防止不必要的混淆,請避免在索引名稱中包含 IP 地址。

縮減回應大小

_index_bulk API 而來的回應包含相當多的資訊。這類資訊或許有助於對請求進行故障診斷或實作重試邏輯,但難免會耗用大量頻寬。在此範例中,對 32 個位元組的文件編製索引將產生 339 個位元組的回應 (包括標頭):

PUT opensearch-domain/more-movies/_doc/1 {"title": "Back to the Future"}

回應

{ "_index": "more-movies", "_type": "_doc", "_id": "1", "_version": 4, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 }

此回應大小可能看起來很小,但是如果您每天索引 1,000,000 份文件 (大約每秒 11.5 份文件),則每個回應 339 位元組的運作量達到每月 10.17 GB 的下載流量。

如果需要考慮資料傳輸成本,請使用filter_path參數來減少 OpenSearch Service 回應的大小,但請小心不要篩選出識別或重試失敗要求所需的欄位。這類欄位因用戶端而異。該filter_path參數適用於所有 OpenSearch 服務 REST API,但對於經常調用的 API(例如_index_bulk API)尤其有用:

PUT opensearch-domain/more-movies/_doc/1?filter_path=result,_shards.total {"title": "Back to the Future"}

回應

{ "result": "updated", "_shards": { "total": 2 } }

除了納入欄位,您還可以使用 - 字首排除欄位。filter_path 也支援萬用字元:

POST opensearch-domain/_bulk?filter_path=-took,-items.index._* { "index": { "_index": "more-movies", "_id": "1" } } {"title": "Back to the Future"} { "index": { "_index": "more-movies", "_id": "2" } } {"title": "Spirited Away"}

回應

{ "errors": false, "items": [ { "index": { "result": "updated", "status": 200 } }, { "index": { "result": "updated", "status": 200 } } ] }

索引轉碼器

索引轉碼器決定索引上儲存的欄位如何壓縮並儲存在磁碟上。索引轉碼器由靜態設定控制,靜態index.codec設定會指定壓縮演算法。此設定會影響索引碎片大小和作業效能。

如需支援的轉碼器清單及其效能特性,請參閱 OpenSearch 文件中的支援轉碼器

當您選擇索引轉碼器時,請考慮下列事項:

  • 若要避免變更現有索引之轉碼器設定的挑戰,請在使用新的轉碼器設定之前,在非生產環境中測試代表性的工作負載。如需詳細資訊,請參閱變更索引轉碼器

  • 您無法針對 k-NN安全性分析索引使用zstdzstd_no_dict壓縮轉碼器。

  • Z 標準索引的移轉至UltraWarm 執行個體已停用。