

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

# 建立集合
<a name="serverless-create"></a>

您可以使用 主控台或 AWS CLI 來建立無伺服器集合。這些步驟涵蓋如何建立*搜尋*或*時間序列*集合。若要建立*向量搜尋*集合，請參閱 [使用向量搜尋集合](serverless-vector-search.md)。

**Topics**
+ [建立集合 (主控台)](serverless-create-console.md)
+ [建立集合 (CLI)](serverless-create-cli.md)

# 建立集合 (主控台)
<a name="serverless-create-console"></a>

使用本節中的程序，透過使用 建立集合 AWS 管理主控台。這些步驟涵蓋如何建立*搜尋*或*時間序列*集合。若要建立*向量搜尋*集合，請參閱 [使用向量搜尋集合](serverless-vector-search.md)。

**Topics**
+ [設定集合設定](#serverless-create-console-step-2)
+ [設定其他搜尋欄位](#serverless-create-console-step-3)

## 設定集合設定
<a name="serverless-create-console-step-2"></a>

使用下列程序來設定集合的相關資訊。

**使用主控台設定集合設定**

1. 導覽至 Amazon OpenSearch Service 主控台，網址為 https：//[https://console.aws.amazon.com/aos/home/](https://console.aws.amazon.com/aos/home/)。

1. 展開左側導覽窗格中的 **Serverless** (無伺服器)，然後選擇 **Collections** (集合)。

1. 選擇 **Create collection** (建立集合)。

1. 提供集合的名稱和描述。名稱必須符合下列條件：
   + 對您的帳戶和 是唯一的 AWS 區域
   + 只能包含小寫字母 a-z、數字 0-9 和連字號 (-)
   + 包含 3 到 32 個之間字元數

1. 選擇集合類型：
   + **Time series** (時間序列)：著重於分析大量半結構化、機器產生之資料的日誌分析區段。至少 24 小時的資料會存放在熱索引上，其餘資料會保留在暖儲存中。
   + **搜尋**：支援內部網路中的應用程式以及面向網際網路之應用程式的全文檢索搜尋。所有搜尋資料均存放在熱儲存中，以確保快速的查詢回應時間。
**注意**  
如果您要啟用自動語意搜尋，請選擇此選項，如 中所述[設定集合設定](#serverless-create-console-step-2)。
   + **向量搜尋** – 向量內嵌的語意搜尋，可簡化向量資料管理。支援機器學習 (ML) 增強型搜尋體驗和生成式 AI 應用程式，例如聊天機器人、個人助理和詐騙偵測。

   如需詳細資訊，請參閱[選擇集合類型](serverless-overview.md#serverless-usecase)。

1. 針對**部署類型**，選擇集合的備援設定。根據預設，每個集合都有備援，這表示索引和搜尋 OpenSearch Compute Units (OCUs) 各自在不同的可用區域中都有自己的待命複本。基於開發和測試目的，您可以選擇停用備援，將集合中的 OCUs 數量減少到兩個。如需詳細資訊，請參閱[運作方式](serverless-overview.md#serverless-process)。

1. 針對**安全性**，選擇**標準建立**。

1. 針對**加密**，選擇用來加密資料的 AWS KMS 金鑰。如果您輸入的集合名稱符合加密政策中定義的模式，OpenSearch Serverless 會通知您。您可以選擇保留此相符項目，也可以使用唯一的加密設定進行覆寫。如需詳細資訊，請參閱[Amazon OpenSearch Serverless 中的加密](serverless-encryption.md)。

1. 針對**網路存取設定**，設定集合的網路存取。
   + 針對**存取類型**，選取公有或私有。

     如果您選擇私有，請指定哪些 VPC 端點和 AWS 服務 可以存取集合。
     + 用於**存取的 VPC 端點** – 指定一或多個 VPC 端點以允許存取。若要建立 VPC 端點，請參閱 [透過 的資料平面存取 AWS PrivateLink](serverless-vpc.md)。
     + **AWS 服務 私有存取** – 選取要允許存取的一或多個支援服務。
   + 針對**資源類型**，選取使用者是否可以透過其 *OpenSearch* 端點 （透過 cURL、Postman 等進行 API 呼叫）、透過 *OpenSearch Dashboards* 端點 （使用視覺化效果並透過主控台進行 API 呼叫） 或兩者存取集合。
**注意**  
AWS 服務 私有存取僅適用於 OpenSearch 端點，不適用於 OpenSearch Dashboards 端點。

   如果您輸入的集合名稱符合網路政策中定義的模式，OpenSearch Serverless 會通知您。您可以選擇保留此相符項目，也可以使用自訂網路設定進行覆寫。如需詳細資訊，請參閱[Amazon OpenSearch Serverless 的網路存取](serverless-network.md)。

1. (選用) 將一個或多個標籤新增至集合。如需詳細資訊，請參閱[標記 Amazon OpenSearch Serverless 集合](tag-collection.md)。

1. 選擇**下一步**。

## 設定其他搜尋欄位
<a name="serverless-create-console-step-3"></a>

您在建立集合工作流程第 2 頁看到的選項取決於您正在建立的集合類型。本節說明如何為每個集合類型設定其他搜尋欄位。本節也說明如何設定自動語意擴充。略過任何不適用於集合類型的區段。

**Topics**
+ [設定自動語意擴充](#serverless-create-console-step-3-semantic-enrichment-fields)
+ [設定時間序列搜尋欄位](#serverless-create-console-step-3-time-series-fields)
+ [設定語彙搜尋欄位](#serverless-create-console-step-3-lexical-fields)
+ [設定向量搜尋欄位](#serverless-create-console-step-3-vector-search-fields)

### 設定自動語意擴充
<a name="serverless-create-console-step-3-semantic-enrichment-fields"></a>

當您建立或編輯集合時，您可以設定自動語意擴充，以簡化 Amazon OpenSearch Service 中的語意搜尋實作和功能。語意搜尋會傳回查詢結果，不僅包含關鍵字比對，還包含使用者搜尋的意圖和內容意義。如需詳細資訊，請參閱[Serverless 的自動語意擴充](serverless-semantic-enrichment.md)。

**設定自動語意擴充**

1. 在**索引詳細資訊**區段中，針對**索引名稱**指定名稱。

1. 在**自動語意擴充欄位**區段中，選擇**新增語意搜尋欄位**。

1. 在**語意擴充欄位的輸入欄位名稱**中，輸入您要擴充的欄位名稱。

1. **資料類型**為**文字**。這無法變更。

1. 針對**語言**，選擇**英文**或**多語言**。

1. 選擇**新增欄位**。

1. 完成集合的選用欄位設定後，請選擇**下一步**。檢閱您的變更，然後選擇**提交**以建立集合。

### 設定時間序列搜尋欄位
<a name="serverless-create-console-step-3-time-series-fields"></a>

**時間序列搜尋欄位**區段中的選項與時間序列資料和資料串流相關。如需這些主題的詳細資訊，請參閱 [使用資料串流管理 Amazon OpenSearch Service 中的時間序列資料](data-streams.md)。

**設定時間序列搜尋欄位**

1. 在**時間序列搜尋欄位**區段中，選擇**新增時間序列欄位**。

1. 針對**欄位名稱**，輸入名稱。

1. 針對**資料類型**，從清單中選擇類型。

1. 選擇**新增欄位**

1. 完成集合的選用欄位設定後，請選擇**下一步**。檢閱您的變更，然後選擇**提交**以建立集合。

### 設定語彙搜尋欄位
<a name="serverless-create-console-step-3-lexical-fields"></a>

文字搜尋會尋找搜尋查詢與索引詞彙或關鍵字之間的完全相符項目。

**設定語彙搜尋欄位**

1. 在**語彙搜尋欄位**區段中，選擇**新增搜尋欄位**。

1. 針對**欄位名稱**，輸入名稱。

1. 針對**資料類型**，從清單中選擇類型。

1. 選擇**新增欄位**

1. 完成集合的選用欄位設定後，請選擇**下一步**。檢閱您的變更，然後選擇**提交**以建立集合。

### 設定向量搜尋欄位
<a name="serverless-create-console-step-3-vector-search-fields"></a>

**設定向量搜尋欄位**

1. 在**向量欄位**區段中，選擇**新增向量欄位**。

1. 針對**欄位名稱**，輸入名稱。

1. 針對**引擎**，從清單中選擇類型。

1. 輸入維度的數量。

1. 針對**距離指標**，從清單中選擇類型。

1. 完成集合的選用欄位設定後，請選擇**下一步**。

1. 檢閱您的變更，然後選擇**提交**以建立集合。

# 建立集合 (CLI)
<a name="serverless-create-cli"></a>

使用本節中的程序，使用 建立 OpenSearch Serverless 集合 AWS CLI。

**Topics**
+ [開始之前](#serverless-create-cli-before-you-begin)
+ [建立集合](#serverless-create-cli-creating)
+ [使用自動語意擴充索引建立集合](#serverless-create-cli-automatic-semantic-enrichment)

## 開始之前
<a name="serverless-create-cli-before-you-begin"></a>

使用 建立集合之前 AWS CLI，請使用下列程序來建立集合所需的政策。

**注意**  
在下列每個程序中，當您指定集合的名稱時，名稱必須符合下列條件：  
對您的帳戶和 是唯一的 AWS 區域
只能包含小寫字母 a-z、數字 0-9 和連字號 (-)
包含 3 到 32 個之間字元數

**建立集合的必要政策**

1. 開啟 AWS CLI 並執行下列命令，以建立資源模式符合集合預期名稱的[加密政策](serverless-encryption.md)。

   ```
   &aws opensearchserverless create-security-policy \
     --name policy name \
     --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/collection name\"]}],\"AWSOwnedKey\":true}"
   ```

   例如，如果您計劃將集合命名為 *logs-application*，則可以建立如下所示的加密政策：

   ```
   &aws opensearchserverless create-security-policy \
     --name logs-policy \
     --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application\"]}],\"AWSOwnedKey\":true}"
   ```

   如果您計劃將政策用於其他集合，則可以使規則的範圍更廣泛，例如 `collection/logs*` 或 `collection/*`。

1. 執行下列命令，使用網路[政策來設定集合的網路](serverless-network.md)設定。您可以在建立集合之後建立網路政策，但建議您事先執行此操作。

   ```
   &aws opensearchserverless create-security-policy \
     --name policy name \
     --type network --policy "[{\"Description\":\"description\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/collection name\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/collection name\"]}],\"AllowFromPublic\":true}]"
   ```

   使用先前的 *logs-application* 範例，您可建立下列網路政策：

   ```
   &aws opensearchserverless create-security-policy \
     --name logs-policy \
     --type network --policy "[{\"Description\":\"Public access for logs collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/logs-application\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application\"]}],\"AllowFromPublic\":true}]"
   ```

## 建立集合
<a name="serverless-create-cli-creating"></a>

下列程序使用 [CreateCollection](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateCollection.html) API 動作來建立類型 `SEARCH`或 的集合`TIMESERIES`。如果您未在請求中指定集合類型，即會預設為 `TIMESERIES`。如需這些類型的詳細資訊，請參閱 [選擇集合類型](serverless-overview.md#serverless-usecase)。若要建立*向量搜尋*集合，請參閱 [使用向量搜尋集合](serverless-vector-search.md)。

如果您的集合使用 加密 AWS 擁有的金鑰，則 `kmsKeyArn``auto`不是 ARN。

**重要**  
建立集合後，除非該集合符合資料存取政策，否則您將無法存取它。如需詳細資訊，請參閱[Amazon OpenSearch Serverless 的資料存取控制](serverless-data-access.md)。

**建立集合**

1. 確認您已建立 中所述的必要政策[開始之前](#serverless-create-cli-before-you-begin)。

1. 執行下列命令。對於 ，`type`請指定 `SEARCH`或 `TIMESERIES`。

   ```
   &aws opensearchserverless create-collection --name "collection name" --type collection type --description "description"
   ```

## 使用自動語意擴充索引建立集合
<a name="serverless-create-cli-automatic-semantic-enrichment"></a>

使用下列程序，使用為[自動語意擴充](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-semantic-enrichment.html)設定的索引建立新的 OpenSearch Serverless 集合。程序使用 OpenSearch Serverless [CreateIndex](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateIndex.html) API 動作。

**使用為自動語意擴充設定的索引建立新的集合**

執行下列命令來建立集合和索引。

```
&aws opensearchserverless create-index \
--region Region ID \
--id collection name --index-name index name \
--index-schema \
'mapping in json'
```

範例如下。

```
&aws opensearchserverless create-index \
--region us-east-1 \
--id conversation_history --index-name conversation_history_index \
--index-schema \ 
'{
    "mappings": {
        "properties": {
            "age": {
                "type": "integer"
            },
            "name": {
                "type": "keyword"
            },
            "user_description": {
                "type": "text"
            },
            "conversation_history": {
                "type": "text",
                "semantic_enrichment": {
                    "status": "ENABLED",
                    // Specifies the sparse tokenizer for processing multi-lingual text
                    "language_option": "MULTI-LINGUAL", 
                    // If embedding_field is provided, the semantic embedding field will be set to the given name rather than original field name + "_embedding"
                    "embedding_field": "conversation_history_user_defined" 
                }
            },
            "book_title": {
                "type": "text",
                "semantic_enrichment": {
                    // No embedding_field is provided, so the semantic embedding field is set to "book_title_embedding"
                    "status": "ENABLED",
                    "language_option": "ENGLISH"
                }
            },
            "abstract": {
                "type": "text",
                "semantic_enrichment": {
                    // If no language_option is provided, it will be set to English.
                    // No embedding_field is provided, so the semantic embedding field is set to "abstract_embedding"
                    "status": "ENABLED" 
                }
            }
        }
    }
}'
```