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 des requêtes OpenSearch en texte intégral dans Gremlin et SPARQL :
-
queryType
: (obligatoire) type de requête OpenSearch. (Pour une liste des types de requêtes, consultez la documentation OpenSearch). Neptune prend en charge les types de requêtes OpenSearch suivants : -
simple_query_string
: renvoie les documents en fonction d'une chaîne de requête fournie, en utilisant un analyseur avec une syntaxe Lucene 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êtesimple_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. match
: la requête match
est la requête standard permettant d'effectuer une recherche en texte intégral, y compris les options de correspondance partielle.prefix
: renvoie les documents contenant un préfixe spécifique dans un champ fourni. -
fuzzy
: renvoie les documents contenant des termes similaires au terme de recherche, tels que mesurés par une distance de modification de 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.
term
f : renvoie les documents qui contiennent une correspondance exacte avec un terme indiqué 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, OpenSearch modifie 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
: renvoie les documents en fonction d'une chaîne de requête fournie, en utilisant 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êtesimple_query_string
, qui est moins stricte.
-
-
field
: champ OpenSearch par rapport auquel la recherche doit être effectuée. Ce paramètre ne peut être omis que si lequeryType
l'autorise (comme le fontsimple_query_string
etquery_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
etquery_string
. query
: (obligatoire) requête à exécuter sur OpenSearch. 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 faitRegexp
par exemple. Dans Gremlin,query
est implicite.-
maxResults
: nombre maximal de résultats à renvoyer. La valeur par défaut est le paramètre OpenSearchindex.max_result_window
, qui est lui-même défini par défaut sur 10 000. Le paramètremaxResults
peut spécifier n'importe quel nombre inférieur à cela.Important
Si vous définissez
maxResults
sur une valeur supérieure à la valeur OpenSearchindex.max_result_window
et que vous essayez d'extraire plus que les résultatsindex.max_result_window
, OpenSearch échoue avec une erreurResult window is too large
. Cependant, Neptune gère cette situation en douceur sans propager l'erreur. Gardez cela à l'esprit si vous essayez d'obtenir plusindex.max_result_window
résultats. minScore
: score minimum qu'un résultat de recherche doit avoir pour être renvoyé. Consultez la documentation relative à la pertinence d'OpenSearchpour 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 de 100). Vous pouvez utiliser ce paramètre pour régler les performances. La taille du lot ne peut pas dépasser le paramètre OpenSearchindex.max_result_window
, qui est de 10 000 par défaut.-
sortBy
: paramètre facultatif qui vous permet de trier les résultats renvoyés par OpenSearch selon l'une des méthodes 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')
-
Champ particulier autre qu'une chaîne (
long
,double
, etc.) dans le document :Notez que lorsque vous effectuez un tri sur un champ autre qu'une chaîne, vous devez ajouter
.value
au nom de ce 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
: tri par score de correspondance (valeur par défaut).Si le paramètre
sortOrder
est présent mais quesortBy
ne l'est pas, les résultats sont triés parscore
dans l'ordre spécifié parsortOrder
. -
id
: tri par ID, c'est-à-dire l'URI de sujet SPARQL ou l'ID de sommet ou d'arête 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
: tri 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
: tri 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, les résultats OpenSearch ne sont pas triés, et leur ordre n'est pas déterministe, ce qui signifie que la même requête peut renvoyer les é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'accompagnesortBy
, l'ordre décroissant (DESC
) du plus au moins grand est utilisé. -
-
sortOrder
: paramètre facultatif qui vous permet de spécifier si les résultats OpenSearch sont triés du moins grand au plus grand ou du plus grand au moins grand (mode de tri par défaut) :ASC
: ordre croissant, du moins grand au plus grand.-
DESC
: ordre décroissant, du plus grand au plus petit.Il s'agit de la valeur par défaut, utilisée lorsque le paramètre
sortBy
est présent, alors quesortOrder
ne l'est pas.
Si ni
sortBy
nisortOrder
ne sont présents, les résultats OpenSearch ne sont pas triés par défaut.