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

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

使用亚马逊在亚马逊 Neptune 中搜索全文OpenSearch服务

Neptune 集成亚马逊OpenSearchService (OpenSearchService)以支持 Gremlin 和 SPARQL 查询中的全文搜索。从以下是可以通过以下功能:Neptune 引擎版本 1.0.2.1,尽管我们建议将其与引擎版本一起使用1.0.4.2或者更高版本,以利用最新修复。

重要

与 Amazon 集成时OpenSearch服务,Neptune 需要 Elasticsearch 7.1 或更高版本,或者任何版本OpenSearch.

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

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

{ "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/*" } ] }
重要

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

在 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 . }