Recherche en texte intégral dans Amazon Neptune à l'aide d'AmazonOpenSearchService - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recherche en texte intégral dans Amazon Neptune à l'aide d'AmazonOpenSearchService

Neptune s'intègre àAmazonOpenSearchservice (OpenSearchservice)pour prendre en charge la recherche en texte intégral dans les requêtes Gremlin et SPARQL. Cette fonction est disponible à partir deMoteur Neptune version 1.0.2.1, bien que nous vous recommandons de l'utiliser avec le déclencheur moteur1.0.4.2ou plus haut pour profiter des derniers correctifs.

Important

Lors de l'intégration à AmazonOpenSearchService, Neptune nécessite Elasticsearch version 7.1 ou supérieure, ou toute version deOpenSearch.

Vous pouvez utiliser Neptune avec unOpenSearchClusters de services renseigné conformément à laModèle de données Neptune pourOpenSearchdonnées. Vous pouvez également créer unOpenSearchDomaine de service lié à Neptune à l'aide d'unAWS CloudFormationpile.

Si vous utilisez IAM, vous devez veiller à avoir un utilisateur IAM disposant des autorisations pour Neptune et NeptuneOpenSearch. Cela signifie que votre utilisateur doit disposer d'unOpenSearchStratégie d'accès aux services comme celle-ci :

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

Neptune toOpenSearchLe processus de réplication décrit ici ne réplique pas de nœuds vides. Il s'agit d'une limitation importante à noter.

Utilisation de la syntaxe de requête Apache Lucene dans les requêtes de recherche en texte intégral Neptune

OpenSearchsupporte l'utilisationSyntaxe Apache Lucenepour les requêtes query_string. Cela est particulièrement utile pour passer plusieurs filtres dans une requête.

Neptune utilise une structure imbriquée pour stocker des propriétés dans unOpenSearchdocument (voirModèle Neptune données de recherche en texte intégral). Lorsque vous utilisez la syntaxe Lucene, vous devez utiliser des chemins complets vers les propriétés de ce modèle suivant.

Voici un exemple 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")

Voici un exemple 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 . }