Amazon Opensearch Service 入门 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Opensearch Service 入门

本教程介绍如何使用 Amazon OpenSearch Service 创建和配置测试域。OpenSearch Service 域与 OpenSearch 集群是同义词。域是包含您指定的设置、实例类型、实例计数和存储资源的集群。

本教程将指导您完成快速启动并运行 OpenSearch Service 域的基本步骤。有关更多详细信息,请参阅创建和管理亚马逊 OpenSearch 服务域名和本指南中的其他主题。有关从自行托管的 OpenSearch 集群迁移到 OpenSearch Service 的信息,请参阅 教程:迁移至 Amazon OpenSearch Service

在本教程中,您可以通过使用 OpenSearch Service 控制台、Amazon CLI 或 Amazon 开发工具包来完成步骤:有关安装和设置 Amazon CLI 的信息,请参阅Amazon Command Line Interface用户指南

第 1 步:创建 Amazon OpenSearch Service 域。

重要

这是一个简明教程,用于配置测试 Amazon Opensearch Service 域。不要使用此流程创建生产域。有关相同流程的综合版本,请参阅创建和管理亚马逊 OpenSearch 服务域名

OpenSearch Service 域与 OpenSearch 集群是同义词。域是包含您指定的设置、实例类型、实例计数和存储资源的集群。您可以使用控制台、Amazon CLI 或 Amazon 开发工具包创建 OpenSearch Service 域。

要使用控制台创建 OpenSearch Service 域
  1. 转至 http://aws.amazon.com,然后选择 Sign In to the Console

  2. Analytics 下,选择 Amazon OpenSearch Service

  3. 选择 Create domain(创建域)

  4. 提供域的名称。本教程中的示例使用名称:movies

  5. 对于域创建方法,选择标准创建

    注意

    要使用最佳实践快速配置生产域,可以选择轻松创建。本教程用于开发和测试目的,我们将使用标准创建

  6. 对于模板,请选择开发/测试

  7. 对于部署选项,请选择带有待机状态的域

  8. 对于版本,请选择最新版本。

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

  10. 在教程中为简单起见,请使用公有访问域。在 网络下,选择 公有访问权限

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

  12. 现在,忽略 SAML 身份验证Amazon Cognito 身份验证章节。

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

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

下一步将数据上传到 OpenSearch Service 域以便编制索引

第 2 步:将数据上传到 Amazon OpenSearch Service 以便编制索引

重要

这是一个简明教程,用于将少量测试数据上传到 Amazon OpenSearch Service。有关在生产域中上传数据的详细信息,请参阅 Amazon OpenSearch Service 中编制数据索引

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

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

您可以在 Windows 上安装 curl 并通过命令提示符使用它,但建议您使用 CygwinWindows Subsystem for Linux 之类的工具。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 中创建的用户名和密码。

有关此命令的详细说明,以及如何向 OpenSearch Service 发出已签名的请求,请参阅 Amazon OpenSearch Service 中编制数据索引

选项 2:上传多个文档

要上传包含多个文档的 JSON 文件到 OpenSearch Service 域
  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"}
  2. 在存储文件的本地目录中,运行以下命令,将其上传到 movies 域:

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

有关批量文件格式的更多信息,请参阅Amazon OpenSearch Service 中编制数据索引

下一步搜索文档

第 3 步:在 Amazon OpenSearch Service 中搜索文档

要在 Amazon Opensearch Service 域中搜索文档,请使用 Opensearch 搜索 API。也可以使用 OpenSearch 控制面板在域中搜索文档。

从命令行搜索文档

运行以下命令在 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 Services 域中搜索文档
  1. 导航到域的 OpenSearch 控制面板 URL。您可以在 OpenSearch Service 控制台中找到域的控制面板 URL。URL 遵循以下格式:

    domain-endpoint/_dashboards/
  2. 使用您的主用户名和密码登录。

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

  4. 选择下一步,然后选择创建索引模式。创建模式后,您可以查看各种文档字段,例如 actordirector

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

  6. 要开始搜索数据,请再次打开左侧导航菜单,然后选择 Discover(发现)。

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

下一步删除域

第 4 步:删除 Amazon OpenSearch Service 域

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

要使用控制台删除 OpenSearch Service 域
  1. 登录到 Amazon Opensearch Service 控制台。

  2. Domains(域)下,选择 movies(电影)域。

  3. 选择 Delete(删除),然后确认删除。

后续步骤

现在您已知道如何创建域和索引数据,您可能想尝试以下的一些练习: