Paramètres de recherche en texte intégral Neptune - 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.

Paramètres de recherche en texte intégral Neptune

Amazon Neptune utilise les paramètres suivants pour spécifier du texte intégralOpenSearchInterroge Gremlin et SPARQL :

  • queryType— (Obligatoire) Le type deOpenSearchInterroger. (Pour obtenir une liste des types de requêtes, consultez leOpenSearchdocumentation). Neptune prend en charge les éléments suivantsOpenSearchtypes de requêtes :

    • simple_query_string— Retourne des documents basés sur une chaîne de requête fournie, à l'aide d'un analyseur dont la syntaxe Lucene est limitée mais tolérante aux pannes. Il s'agit du type de requête par défaut.

      Cette requête utilise une syntaxe simple pour analyser et diviser la chaîne de requête fournie en termes basés sur des opérateurs spéciaux. La requête analyse ensuite chaque terme indépendamment avant de renvoyer les documents correspondants.

      Bien que sa syntaxe soit plus limitée que la requête query_string, la requête simple_query_string ne renvoie pas d'erreurs pour la syntaxe non valide. Au lieu de cela, il ignore toutes les parties non valides de la chaîne de requête.

    • correspondre— Lematchquery est la requête standard pour effectuer une recherche en texte intégral, y compris des options de correspondance floue.

    • préfixe— Retourne des documents contenant un préfixe spécifique dans un champ fourni.

    • floue— Retourne des documents contenant des termes similaires au terme recherché, tels que mesurés par une distance de modification Levenshtein.

      Une distance d'édition est le nombre de modifications d'un caractère nécessaires pour transformer un terme en un autre. Ces changements peuvent inclure :

      • Modification d'un caractère (car changé en bar).

      • Suppression d'un caractère (marre changé en mare).

      • Insertion d'un caractère (malade changé en maladie).

      • Transposition de deux caractères adjacents (chien changé en chine).

      Pour trouver des termes similaires, la requête approximative crée un ensemble de toutes les variations et extensions possibles du terme recherché à l'intérieur d'une distance d'édition spécifiée, puis renvoie des correspondances exactes pour chacune de ces variantes.

    • terme— Retourne les documents qui contiennent une correspondance exacte d'un terme spécifié dans l'un des champs spécifiés.

      Vous pouvez utiliser la requête term pour rechercher des documents en fonction d'une valeur précise telle qu'un prix, un ID de produit ou un nom d'utilisateur.

      Avertissement

      Évitez d'utiliser la requête de terme pour les champs de texte. Par défaut,OpenSearchmodifie les valeurs des champs de texte dans le cadre de son analyse, ce qui peut rendre difficile la recherche de correspondances exactes pour les valeurs des champs de texte.

      Pour rechercher des valeurs de champ de texte, utilisez plutôt la requête de correspondance.

    • query_string— Retourne des documents basés sur une chaîne de requête fournie, à l'aide d'un analyseur avec une syntaxe stricte (syntaxe Lucene).

      Cette requête utilise une syntaxe pour analyser et diviser la chaîne de requête fournie en fonction des opérateurs, tels que AND ou NOT. La requête analyse ensuite chaque texte fractionné indépendamment avant de renvoyer les documents correspondants.

      Vous pouvez utiliser la requête query_string pour créer une recherche complexe comprenant des caractères génériques, des recherches dans plusieurs champs, etc. Bien qu'elle soit polyvalente, la requête est stricte et renvoie une erreur si la chaîne de requête inclut une syntaxe non valide.

      Avertissement

      Dans la mesure où elle renvoie une erreur pour toute syntaxe non valide, nous vous déconseillons d'utiliser la requête query_string pour les zones de recherche.

      Si vous n'avez pas besoin de prendre en charge une syntaxe de requête, envisagez d'utiliser la requête match. Si vous avez besoin des fonctionnalités d'une syntaxe de requête, utilisez la requête simple_query_string, qui est moins stricte.

  • field— Le terrain dansOpenSearchpar rapport auquel exécuter la recherche. Ce paramètre ne peut être omis que si le queryType l'autorise (comme le font simple_query_string et query_string), auquel cas la recherche est effectuée par rapport à tous les champs. Dans Gremlin, il est implicite.

    Plusieurs champs peuvent être spécifiés si la requête l'autorise, comme le font simple_query_string et query_string.

  • query— (Obligatoire) Requête sur laquelle exécuterOpenSearch. Le contenu de ce champ peut varier en fonction du type de requête (queryType). Les différents types de requête acceptent des syntaxes différentes, comme le fait Regexp par exemple. Dans Gremlin, query est implicite.

  • maxResults— Nombre maximal de résultats à renvoyer. La valeur par défaut est leindex.max_result_window OpenSearch, qui est lui-même défini par défaut sur 10 000. Le paramètre maxResults peut spécifier n'importe quel nombre inférieur à cela.

    Important

    Si vous définissezmaxResultsà une valeur supérieure à la valeurOpenSearch index.max_result_windowet essayez de récupérer plus deindex.max_result_windowrésultats,OpenSearchéchoue avec unResult window is too largeErreur. Cependant, Neptune gère cela de manière gracieuse sans propager l'erreur. Gardez cela à l'esprit si vous essayez d'obtenir plus index.max_result_window résultats.

  • minScore— Score minimum qu'un résultat de recherche doit voir pour être renvoyé. VoirOpenSearchDocumentationpour obtenir une explication de la notation des résultats.

  • batchSize— Neptune récupère toujours les données par lots (la taille par défaut du lot est 100). Vous pouvez utiliser ce paramètre pour régler les performances. La taille du lot ne peut pas dépasser la valeurindex.max_result_window OpenSearch, qui est de 10 000 par défaut.

  • sortBy— Paramètre facultatif qui vous permet de trier les résultats renvoyés parOpenSearchpar l'une des actions suivantes :

    • Champ de chaîne particulier dans le document–  

      Par exemple, dans une requête SPARQL, vous pouvez spécifier :

      neptune-fts:config neptune-fts:sortBy foaf:name .

      Dans une requête Gremlin similaire, vous pouvez spécifier :

      .withSideEffect('Neptune#fts.sortBy', 'name')
    • Un champ particulier non chaîne (long,double, etc.) dans le document–  

      Notez que lors du tri sur un champ autre que la chaîne, vous devez ajouter.valueau nom du champ pour le différencier d'un champ de chaîne.

      Par exemple, dans une requête SPARQL, vous pouvez spécifier :

      neptune-fts:config neptune-fts:sortBy foaf:name.value .

      Dans une requête Gremlin similaire, vous pouvez spécifier :

      .withSideEffect('Neptune#fts.sortBy', 'name.value')
    • score— Trier par score de correspondance (valeur par défaut).

      Si le paramètre sortOrder est présent mais que sortBy ne l'est pas, les résultats sont triés par score dans l'ordre spécifié par sortOrder.

    • id— Trier par ID, ce qui signifie l'URI du sujet SPARQL ou l'ID de sommet Gremlin.

      Par exemple, dans une requête SPARQL, vous pouvez spécifier :

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_id' .

      Dans une requête Gremlin similaire, vous pouvez spécifier :

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_id')
    • label— Trier par étiquette.

      Par exemple, dans une requête SPARQL, vous pouvez spécifier :

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_type' .

      Dans une requête Gremlin similaire, vous pouvez spécifier :

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_type')
    • doc_type— Trier par type de document (SPARQL ou Gremlin).

      Par exemple, dans une requête SPARQL, vous pouvez spécifier :

      neptune-fts:config neptune-fts:sortBy 'Neptune#fts.document_type' .

      Dans une requête Gremlin similaire, vous pouvez spécifier :

      .withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.document_type')

    Par défaut,OpenSearchles résultats ne sont pas triés et leur ordre n'est pas déterministe, ce qui signifie que la même requête peut renvoyer des éléments dans un ordre différent chaque fois qu'elle est exécutée. Pour cette raison, si le jeu de résultats est supérieur à max_result_window, un sous-ensemble tout à fait différent du total des résultats peut être renvoyé chaque fois qu'une requête est exécutée. Cependant, en triant, vous pouvez rendre les résultats de différentes séries plus comparables directement.

    Si aucun paramètre sortOrder n'accompagne sortBy, l'ordre décroissant (DESC) du plus au moins grand est utilisé.

  • sortOrder— Paramètre facultatif qui vous permet de spécifier siOpenSearchles résultats sont triés du moins grand vers le plus grand ou inversement (valeur par défaut) :

    • ASC— Ordre croissant, du moins grand vers le plus grand.

    • DESC— Ordre décroissant, du plus grand vers le plus petit.

      Il s'agit de la valeur par défaut, utilisée lorsque le paramètre sortBy est présent, alors que sortOrder ne l'est pas.

    Si aucun des deuxsortBynisortOrderest présent,OpenSearchles résultats ne sont pas triés par défaut.