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

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

Amazon S OpenSearch ervice 中编制数据索

由于 Amazon S OpenSearch ervice 使用的是 REST API,因此可通过多种方法为文档编制索引。您可以使用标准客户端 (如 curl) 或可发送 HTTP 请求的任何编程语言。为了进一步简化与之交互的过程,S OpenSearch ervice 拥有了适用于多种编程语言的客户端。高级用户可以直接跳至将流式数据加载到 Amazon S OpenSearch ervice

强烈建议您使用 Amazon OpenSearch Ingestion 来摄取数据,这是在 Service 中内置的完全托管的数据收集器。 OpenSearch 有关更多信息,请参阅 Amazon OpenSearch Ingesti on。

有关索引的简介,请参阅OpenSearch文档

索引的命名限制

OpenSearch Service 索引具有以下命名限制:

  • 所有字母必须为小写形式。

  • 索引名称不能以 _- 开头。

  • 索引名称不能包含空格、逗号、:"*+/\|?#><

请勿在索引、类型或文档 ID 名称中包含敏感信息。 OpenSearch Service 会在其统一资源标识符 (URIs) 中使用这些名称。服务器和应用程序经常记录 HTTP 请求,如果 URIs 包含敏感信息,可能会导致不必要的数据泄露:

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 年患了流感。

如果 Ser OpenSearch vice 在索引名称中检测到真实或感知的 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 APIs 包含大量信息。此信息可用于对请求进行问题排查或实施重试逻辑,但可使用大量带宽。在本示例中,对 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参数来减小S OpenSearch ervice 响应的大小,但请小心,不要筛掉标识或重试失败请求所需的字段。这些字段会因客户端而异。该filter_path参数适用于所有 Service REST APIs,但对于经常调用的 OpenSearch 服务特别有用,例如_index_bulk APIs: APIs

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

在选择索引编解码器时,请注意以下事项:

  • 为避免更改现有索引的编解码器设置所带来的难题,请在使用新的编解码器设置之前,在非生产环境中测试具有代表性的工作负载。有关更多信息,请参阅更改索引编解码器

  • 不能将 Zstandard 压缩编解码器"index.codec": "zstd""index.codec": "zstd_no_dict")用于 k-NN安全分析索引。