

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

# 亚马逊 OpenSearch 服务入门
开始使用

开始之前，如果您还没有账户，请先[先注册一个 Amazon Web Services 账户](https://www.amazonaws.cn/ )。设置账户后，完成亚马逊 OpenSearch 服务[入门](#gsg)教程。如果您在了解该服务时需要更多信息，请参考以下介绍性主题：
+ [创建域](createupdatedomains.md)。
+ 根据工作负载[调整域大小](sizing-domains.md)。
+ 使用[域访问策略](ac.md)或[精细访问控制](fgac.md)来控制对域的访问权限。
+ [手动](indexing.md)索引数据或来自[其他 Amazon 服务的](integrations.md)索引。
+ 使用[OpenSearch 仪表板](dashboards.md)搜索您的数据并创建可视化效果。
+ 了解有关创建域的更多高级选项的信息。有关更多信息，请参阅 [创建和管理亚马逊 OpenSearch 服务域名](createupdatedomains.md)。
+ 了解如何管理域中的索引。有关更多信息，请参阅 [在亚马逊 OpenSearch 服务中管理索引](managing-indices.md)。
+ 试试其中一个使用亚马逊 OpenSearch 服务的教程。有关更多信息，请参阅 [亚马逊 OpenSearch 服务教程](tutorials.md)。

有关从自行管理的 OpenSearch 集群迁移到 S OpenSearch ervice 的信息，请参阅[教程：迁移到亚马逊 OpenSearch 服务](migration.md)。

有关更多详细信息，请参阅[创建和管理亚马逊 OpenSearch 服务域名](createupdatedomains.md)和本指南中的其他主题。有关从自行管理的 OpenSearch 集群迁移到 S OpenSearch ervice 的信息，请参阅[教程：迁移到亚马逊 OpenSearch 服务](migration.md)。

您可以使用 OpenSearch 服务控制台 Amazon CLI、或 Amazon SDK 完成以下步骤。有关安装和设置的信息 Amazon CLI，请参阅《[Amazon Command Line Interface 用户指南》](https://docs.amazonaws.cn/cli/latest/userguide/)。

# 创建亚马逊 OpenSearch 服务域名
创建域

**重要**  
这是配置*测试* Amazon OpenSearch 服务域名的简明教程。不要使用此流程创建生产域。有关相同流程的综合版本，请参阅[创建和管理亚马逊 OpenSearch 服务域名](createupdatedomains.md)。

 OpenSearch 服务域是 OpenSearch 集群的同义词。域是包含您指定的设置、实例类型、实例计数和存储资源的集群。您可以使用控制台、或 Amazon CLI，来创建 OpenSearch 服务域 Amazon SDKs。

**使用控制台创建 OpenSearch 服务域**

1. 前往[https://aws.amazon.com](https://www.amazonaws.cn/ )并选择 “**登录到控制台”**。

1. 在 “**分析**” 下，选择 “**亚马逊 OpenSearch 服务**”。

1. 选择 **Create domain（创建域）**。

1. 提供域的名称。本教程中的示例使用名称：*movies*。

1. 对于域创建方法，选择**标准创建**。
**注意**  
要使用最佳实践快速配置生产域，可以选择**轻松创建**。本教程用于开发和测试目的，我们将使用**标准创建**。

1. 对于模板，请选择**开发/测试**。

1. 对于部署选项，请选择**带有待机状态的域**。

1. 对于**版本**，请选择最新版本。

1. 对于现在，请忽略**数据节点**、**冷热数据存储**、**专用主节点**、**快照配置**和**自定义端点**部分。

1. 在教程中为简单起见，请使用公有访问域。在 **Network（网络）**下，选择 **Public access（公有访问权限）**。

1. 在精细访问控制设置中，选中**启用精细访问控制**复选框。选择**创建主用户**并提供用户名和密码。

1. 现在，忽略 **SAML 身份验证**和 **Amazon Cognito 身份验证**章节。

1. 对于 **Access policy（访问策略）**，选择 **Only use fine-grained access control（仅使用精细访问控制）**。在本教程中，精细访问控制处理身份验证，而不是域访问策略。

1. 忽略其余设置，然后选择 **Create（创建）**。新域初始化流程通常需要 15-30 分钟，但可能需要更长的时间，具体取决于配置。域初始化后，请选择该域以打开其配置窗格。记下 **General information**（一般信息）下的域端点（例如，`https://search-my-domain.us-east-1.es.amazonaws.com`），您将会在下一个步骤中用到它。

**下一步**：[将数据上传到 OpenSearch 服务域进行索引](gsgupload-data.md)

# 将数据上传到 Amazon OpenSearch 服务进行索引
上传数据以进行索引

**重要**  
这是一个将少量测试数据上传到 Amazon OpenSearch 服务的简明教程。有关在生产域中上传数据的详细信息，请参阅 [在 Amazon OpenSearch 服务中为数据编制索引](indexing.md)。

您可以使用命令行或大多数编程语言将数据上传到 OpenSearch 服务域。

为简化和方便起见，以下示例请求使用了 [curl](https://curl.haxx.se/)（常见的 HTTP 客户端）。像 curl 这样的客户端无法执行您的访问策略指定 IAM 用户或角色时所需的请求签名。要成功完成此步骤，必须使用精细访问控制以及主用户名和密码，就像在[步骤 1](gsgcreate-domain.md) 中配置的那样。

您可以在 Windows 上安装 curl 并通过命令提示符使用它，但建议您使用 [Cygwin](https://www.cygwin.com/) 或 [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) 之类的工具。macOS 和大多数 Linux 发行版都预安装有 curl。

## 选项 1：上传单个文档


运行以下命令将单个文档添加到 *movies* 域：

```
curl -XPUT -u 'master-user:master-user-password' 'domain-endpoint/movies/_doc/1' -d '{"director": "Burton, Tim", "genre": ["Comedy","Sci-Fi"], "year": 1996, "actor": ["Jack Nicholson","Pierce Brosnan","Sarah Jessica Parker"], "title": "Mars Attacks!"}' -H 'Content-Type: application/json'
```

在命令中，提供您在[步骤 1](gsgcreate-domain.md) 中创建的用户名和密码。

有关此命令以及如何向 S OpenSearch ervice 发出签名请求的详细说明，请参阅[在 Amazon OpenSearch 服务中为数据编制索引](indexing.md)。

## 选项 2：上传多个文档


**将包含多个文档的 JSON 文件上传到 OpenSearch 服务域**

1. 创建名为 `bulk_movies.json` 的本地文件。将以下内容粘贴到文件中，并添加一个尾部换行：

   ```
   { "index" : { "_index": "movies", "_id" : "2" } }
   {"director": "Frankenheimer, John", "genre": ["Drama", "Mystery", "Thriller", "Crime"], "year": 1962, "actor": ["Lansbury, Angela", "Sinatra, Frank", "Leigh, Janet", "Harvey, Laurence", "Silva, Henry", "Frees, Paul", "Gregory, James", "Bissell, Whit", "McGiver, John", "Parrish, Leslie", "Edwards, James", "Flowers, Bess", "Dhiegh, Khigh", "Payne, Julie", "Kleeb, Helen", "Gray, Joe", "Nalder, Reggie", "Stevens, Bert", "Masters, Michael", "Lowell, Tom"], "title": "The Manchurian Candidate"}
   { "index" : { "_index": "movies", "_id" : "3" } }
   {"director": "Baird, Stuart", "genre": ["Action", "Crime", "Thriller"], "year": 1998, "actor": ["Downey Jr., Robert", "Jones, Tommy Lee", "Snipes, Wesley", "Pantoliano, Joe", "Jacob, Ir\u00e8ne", "Nelligan, Kate", "Roebuck, Daniel", "Malahide, Patrick", "Richardson, LaTanya", "Wood, Tom", "Kosik, Thomas", "Stellate, Nick", "Minkoff, Robert", "Brown, Spitfire", "Foster, Reese", "Spielbauer, Bruce", "Mukherji, Kevin", "Cray, Ed", "Fordham, David", "Jett, Charlie"], "title": "U.S. Marshals"}
   { "index" : { "_index": "movies", "_id" : "4" } }
   {"director": "Ray, Nicholas", "genre": ["Drama", "Romance"], "year": 1955, "actor": ["Hopper, Dennis", "Wood, Natalie", "Dean, James", "Mineo, Sal", "Backus, Jim", "Platt, Edward", "Ray, Nicholas", "Hopper, William", "Allen, Corey", "Birch, Paul", "Hudson, Rochelle", "Doran, Ann", "Hicks, Chuck", "Leigh, Nelson", "Williams, Robert", "Wessel, Dick", "Bryar, Paul", "Sessions, Almira", "McMahon, David", "Peters Jr., House"], "title": "Rebel Without a Cause"}
   ```

1. 在存储文件的本地目录中，运行以下命令，将其上传到 *movies* 域：

   ```
   curl -XPOST -u 'master-user:master-user-password' 'domain-endpoint/movies/_bulk' --data-binary @bulk_movies.json -H 'Content-Type: application/x-ndjson'
   ```

有关批量文件格式的更多信息，请参阅[在 Amazon OpenSearch 服务中为数据编制索引](indexing.md)。

**下一步**：[搜索文档](gsgsearch.md)

# 在 Amazon OpenSearch 服务中搜索文档
搜索文档

要搜索亚马逊 OpenSearch 服务域中的文档，请使用 OpenSearch 搜索 API。或者，您可以使用[OpenSearch 仪表板](dashboards.md)搜索域中的文档。

## 从命令行搜索文档


运行以下命令在 *movies* 域中搜索单词 *mars*：

```
curl -XGET -u 'master-user:master-user-password' 'domain-endpoint/movies/_search?q=mars&pretty=true'
```

如果您使用上一页的批量数据，请尝试搜索 *rebel*。

您可以看到类似以下内容的响应：

```
{
  "took" : 5,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 0.2876821,
    "hits" : [
      {
        "_index" : "movies",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 0.2876821,
        "_source" : {
          "director" : "Burton, Tim",
          "genre" : [
            "Comedy",
            "Sci-Fi"
          ],
          "year" : 1996,
          "actor" : [
            "Jack Nicholson",
            "Pierce Brosnan",
            "Sarah Jessica Parker"
          ],
          "title" : "Mars Attacks!"
        }
      }
    ]
  }
}
```

## 使用 OpenSearch 仪表板搜索文档


OpenSearch 仪表板是一种流行的开源可视化工具，专为与之配合使用而设计 OpenSearch。它提供了一个有用的用户界面，供您搜索和监控您的索引。

**使用仪表板搜索 OpenSearch 服务域中的文档**

1. 导航到您的域名的 OpenSearch 控制面板网址。您可以在 OpenSearch 服务控制台的域名控制面板上找到该网址。URL 遵循以下格式：

   ```
   domain-endpoint/_dashboards/
   ```

1. 使用您的主用户名和密码登录。

1. 要使用控制面板，您需要创建至少一个索引模式。控制面板使用这些模式来标识要分析的索引。打开左侧导航窗格，选择 **Stack Management**（堆栈管理），选择 **Index Patterns**（索引模式），然后选择 **Create index pattern**（创建索引模式）。在本教程中，请输入 *movies*。

1. 选择**下一步**，然后选择**创建索引模式**。创建模式后，您可以查看各种文档字段，例如 `actor` 和 `director`。

1. 返回到 **Index Patterns**（索引模式）选项卡，并确保 `movies` 已设置为默认值。如果不是，请选择该模式，然后选择星形图标以将其设为默认值。

1. 要开始搜索数据，请再次打开左侧导航菜单，然后选择 **Discover**（发现）。

1. 在搜索栏中，如果您上传了单个文档，请输入 *mars*，或者如果您上传了多个文档，输入 *rebel*，然后按 **Enter**。您可以尝试搜索其他词语，例如演员或导演姓名。

**下一步**：[删除域](gsgdeleting.md)

# 删除亚马逊 OpenSearch 服务域名
删除域

由于本教程中的 *movies* 域用于测试目的，因此在试用完毕后应将其删除，以避免产生费用。

**从控制台删除 OpenSearch 服务域**

1. 登录**亚马逊 OpenSearch 服务**控制台。

1. 在 **Domains（域）**下，选择 **movies（电影）**域。

1. 选择 **Delete（删除）**，然后确认删除。