La question_string utilise un analyseur avec une syntaxe stricte. Par conséquent, il renvoie une erreur si le terme de requête fourni contient une syntaxe incorrecte. Ceci est différent de la chaîne de requête simple.
Voyons comment nous pouvons utiliser la question_string dans elasticsearch.
Pour comprendre comment utiliser la requête Query_string, nous examinerons quelques exemples.
Elasticsearch Query_String Utilisation Exemples
Dans ce tutoriel, nous utiliserons l'index mondial de kibana_sample_data_flights.
Exemple 1
Supposons que nous voulons récupérer les documents où le destcityName est Denver? Nous pouvons créer une question simple comme:
Get / kibana_sample_data_flights / _search?Q = destcityName: Denver
L'exemple est une question simple qui recherche le champ destcityName où la valeur est Denver.
Voici une illustration de l'exemple des enregistrements résultants:
Nous pouvons également implémenter la requête ci-dessus à l'aide du paramètre Query_String, comme indiqué ci-dessous:
Get / kibana_sample_data_flights / _search
"mettre en doute":
"chaîne de requête":
"Default_field": "destcityName",
"Query": "Denver"
L'exemple ci-dessus remplit une fonctionnalité similaire à celle d'un seul line. Cependant, celui ci-dessus est plus lisible et facile à développer et à appliquer des filtres.
Exemple 2
Nous pouvons également utiliser des opérateurs booléens comme où DestcityName est Denver ou Sydney.
Pour ce faire, nous pouvons effectuer une requête en tant que:
Get / kibana_sample_data_flights / _search
"mettre en doute":
"chaîne de requête":
"Default_field": "destcityName",
"Query": "(Sydney) ou (Denver)"
Dans l'exemple ci-dessus, le destcityName peut être Denver ou Sydney.
Exemple de sortie:
Exemple 3
Supposons que vous souhaitiez obtenir les documents où le temps de vol est supérieur à 10 heures mais moins de 15 heures.
Dans un tel exemple, nous pouvons utiliser Boolean et comme indiqué:
Get / kibana_sample_data_flights / _search
"mettre en doute":
"chaîne de requête":
"Default_field": "FlighttimeHour",
"requête": "(> = 10) et (<=15)"
Les documents résultants comprennent:
Exemple 4
Supposons que nous voulons rechercher plusieurs champs? Nous pouvons passer les champs cibles en utilisant les champs dans un tableau comme:
Get / kibana_sample_data_flights / _search
"mettre en doute":
"chaîne de requête":
"Fields": ["destcityName", "Destweather"],
"Query": "Denver et Rain"
Dans l'exemple ci-dessus, nous recherchons des documents où le destcityName est Denver et Destweather est la pluie.
Nous pouvons obtenir des exemples de résultats comme:
Fermeture
Ce guide vous a appris à utiliser la requête Elasticsearch Query_string pour récupérer des documents correspondant à une chaîne de requête spécifique.