本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊在亚马逊 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 语法
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 . }