

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建集合
<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 服务控制台 [https://console.aws.amazon.com/aos//](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 小时的数据存储在热索引中，其余数据仍保留在温存储中。
   + **Search**（搜索）：全文搜索，支持内部网络中的应用程序和面向互联网的应用程序。所有搜索数据都将存储在热存储中，以确保快速查询响应时间。
**注意**  
如果要启用自动语义搜索，请选择此选项，如 [配置集合设置](#serverless-create-console-step-2) 中所述。
   + **向量搜索** – 对简化向量数据管理的矢量嵌入进行语义搜索。支持机器学习（ML）增强搜索体验和生成式人工智能应用程序，例如聊天机器人、个人助理和欺诈检测。

   有关更多信息，请参阅 [选择集合类型](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-encryption.md)。

1. 对于**网络访问设置**，配置集合的网络访问权限。
   + 对于**访问类型**，选择公有或私有。

     如果选择私有，指定哪些 VPC 端点和 AWS 服务 可以访问该集合。
     + **用于访问的 VPC 端点** – 指定一个或多个可用于访问的 VPC 端点。要创建 VPC 端点，请参阅[通过以下方式访问数据平面 AWS PrivateLink](serverless-vpc.md)。
     + **AWS 服务 私人访问**-选择一个或多个支持的服务以允许访问。
   + 对于**资源类型**，选择用户是可以通过其*OpenSearch*端点访问集合（通过 curl、Postman 等进行 API 调用）、通过*OpenSearch 仪表板*端点（使用可视化效果并通过控制台进行 API 调用），还是两者兼而有之。
**注意**  
AWS 服务 私有访问权限仅适用于 OpenSearch终端节点，不适用于 OpenSearch 仪表板端点。

   OpenSearch 如果您输入的集合名称与网络策略中定义的模式匹配，Serverless 会通知您。您可以选择保留此匹配项，也可以使用自定义网络设置将其覆盖。有关更多信息，请参阅 [Amazon OpenSearch Serverless 的网络访问](serverless-network.md)。

1. （可选）将一个或多个标签添加到集合。有关更多信息，请参阅 [为 Amazon OpenSearch 无服务器集合加标签](tag-collection.md)。

1. 选择**下一步**。

## 配置其他搜索字段
<a name="serverless-create-console-step-3"></a>

在创建集合工作流程的第二页上显示的选项取决于您正在创建的集合类型。本节介绍如何为每种集合类型配置其他搜索字段。本节还介绍如何配置自动语义增强。跳过任何不适用于集合类型的部分。

**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>

创建或编辑集合时，您可以配置自动语义扩展，从而简化 Ama OpenSearch zon Service 中的语义搜索实现和功能。语义搜索返回的查询结果不仅包含关键字匹配，还包含用户搜索意图及上下文含义。有关更多信息，请参阅 [无服务器的自动语义丰富](serverless-semantic-enrichment.md)。

**配置自动语义增强**

1. 在**索引详细信息**部分，对于**索引名称**，请指定一个名称。

1. 在**自动语义增强字段**部分中，选择**添加语义搜索字段**。

1. 在**语义增强的输入字段名称**字段中，输入要增强的字段名称。

1. **数据类型**为**文本**。无法更改此设置。

1. 对于**语言**，选择**英语**或**多语言**。

1. 选择**添加字段**。

1. 完成对集合的可选字段配置后，选择**下一步**。查看您的更改，并选择**提交**以创建集合。

### 配置时间序列搜索字段
<a name="serverless-create-console-step-3-time-series-fields"></a>

**时间序列搜索字段**部分中的选项适用于时间序列数据和数据流。有关这些主题的更多信息，请参阅 [使用数据流管理 Amazon OpenSearch 服务中的时间序列数据](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 无服务器集合。 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-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>

使用以下步骤创建新的 OpenSearch Serverless 集合，其索引已配置为[自动语义丰富](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-semantic-enrichment.html)。该过程使用 OpenSearch 无服务器 [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" 
                }
            }
        }
    }
}'
```