在 Amazon Neptune 中使用全文搜索Amazon OpenSearch Service(OpenSearch Service) - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在 Amazon Neptune 中使用全文搜索Amazon OpenSearch Service(OpenSearch Service)

Neptune 与集成Amazon OpenSearch Service(OpenSearch Service)以支持 Gremlin 和 SPARQL 查询中的全文搜索。此功能可以从以下位置开始:Neptune 引擎版本 1.0.2.1,尽管我们建议将其与引擎版本一起使用1.0.4.2或者更高版本,以利用最新的修复。

重要

与集成时Amazon OpenSearch Service,Neptune 需要 Elasticsearch 7.1 或更高版本而不是更高版本OpenSearch版本 1.0。Neptune 目前不兼容OpenSearch版本 1.0。

您可以将 Neptune 与现有的OpenSearch Service已根据填充的集群对于 Neptune 数据模型OpenSearch数据. 或者,您可以创建OpenSearch Service使用与 Neptune 链接的域Amazon CloudFormation堆栈。

如果您正在使用 IAM,则需要确保您拥有一个既具有针对 Neptune 又具有针对 Neptune 的权限的 IAM 用户。OpenSearch. 这意味着您的用户必须具有OpenSearch Service如下所示的访问策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": "es:*", "Resource": "arn:aws:es:region:account-id:es-resource-id/*" } ] }
重要

此处描述的 Neptune 到 OpenSearch 复制过程不会复制空白节点。这是一个需要注意的重要限制。

在 Neptune 全文搜索查询中使用 Apache Lucene 查询语法

OpenSearch支持使用Apache Lucene 语法对于 query_string 查询。这对于在查询中传递多个筛选器特别有用。

Neptune 使用嵌套结构将属性存储在OpenSearch文档(请参阅Neptune 全文搜索数据模型)。使用 Lucene 语法时,您需要使用此下一模型中属性的完整路径。

这是一个 Gremlin 示例:

g.withSideEffect("Neptune#fts.endpoint", "es_enpoint") .withSideEffect("Neptune#fts.queryType", "query_string") .V() .has("*", "Neptune#fts predicates.name.value:\"Jane Austin\" AND entity_type:Book")

这是一个 SPARQL 示例:

PREFIX neptune-fts: <http://aws.amazon.com/neptune/vocab/v01/services/fts#> SELECT * WHERE { SERVICE neptune-fts:search { neptune-fts:config neptune-fts:endpoint 'http://localhost:9200 (http://localhost:9200/)' . neptune-fts:config neptune-fts:queryType 'query_string' . neptune-fts:config neptune-fts:query "predicates.\\*foaf\\*name.value:Ronak AND predicates.\\*foaf\\*surname.value:Sh*" . neptune-fts:config neptune-fts:field '*' . neptune-fts:config neptune-fts:return ?res . }