本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Neptune 中的非字符串 OpenSearch 索引
Amazon Neptune 中的非字符串 OpenSearch 索引编制允许使用流轮询器将谓词的非字符串值复制到 OpenSearch。然后,所有可以安全地转换为相应的 OpenSearch 映射或数据类型的谓词值都将复制到 OpenSearch。
要在新堆栈上启用非字符串索引编制,必须将 AWS CloudFormation 模板中的 Enable Non-String Indexing
标志设置为 true
。这是默认设置。要更新现有堆栈以支持非字符串索引编制,请参阅下面的更新现有的堆栈。
注意
最好不要在
1.0.4.2
之前的引擎版本上启用非字符串索引编制。OpenSearch 查询使用正则表达式查找与多个字段匹配的字段名,其中一些字段包含字符串值,另一些字段包含非字符串值,但查询会失败并返回错误。如果 Neptune 中的全文搜索查询属于这种类型,也会发生同样的情况。
按非字符串字段排序时,请在字段名称后面附加“.value”,以将其与字符串字段区分开来。
目录
更新现有的 Neptune 全文搜索堆栈以支持非字符串索引编制
如果您已经在使用 Neptune 全文搜索,则需要采取以下步骤来支持非字符串索引编制:
-
停止流轮询器 Lambda 函数。这样可以确保在导出过程中不会复制任何新的更新。为此,请禁用用于调用 Lambda 函数的云事件规则:
在 AWS Management Console 中,导航到 CloudWatch。
选择规则。
选择带有 Lambda 流轮询器名称的规则。
选择禁用以暂时禁用该规则。
-
在 OpenSearch 中删除当前 Neptune 索引。使用以下
curl
查询从 OpenSearch 集群中删除amazon_neptune
索引:curl -X DELETE "
your OpenSearch endpoint
/amazon_neptune" -
开始从 Neptune 一次性导出到 OpenSearch。此时最好设置一个新的 OpenSearch 堆栈,以便为执行导出的轮询器获取新的构件。
按照 GitHub 中此处
列出的步骤,开始将您的 Neptune 数据一次性导出到 OpenSearch 中。 -
更新现有流轮询器的 Lambda 构件。成功完成将 Neptune 数据导出到 OpenSearch 后,请执行以下步骤:
在 AWS Management Console 中,导航到 AWS CloudFormation。
选择主要的父 AWS CloudFormation 堆栈。
为该堆栈选择更新选项。
选择从选项替换当前模板。
对于模板源,请选择 Amazon S3 URL。
-
对于 Amazon S3 URL,输入:
https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_elastic_search.json
在不更改任何 AWS CloudFormation 参数的情况下选择下一步。
选择更新堆栈。AWS CloudFormation 将用最新的构件替换流轮询器的 Lambda 代码构件。
-
再次启动流轮询器。为此,请启用相应的 CloudWatch 规则:
在 AWS Management Console 中,导航到 CloudWatch。
选择规则。
选择带有 Lambda 流轮询器名称的规则。
选择启用。