Qu'est-ce que la requête booléenne dans Elasticsearch

Qu'est-ce que la requête booléenne dans Elasticsearch

Boolean, ou une requête Bool dans Elasticsearch, est un type de recherche qui vous permet de combiner des conditions à l'aide de conditions booléennes.

Elasticsearch recherchera le document dans l'index spécifié et renvoie tous les enregistrements correspondant à la combinaison de clauses booléennes.

À l'aide de requêtes booléennes, vous pouvez filtrer pour des paramètres plus spécifiques, vous permettant d'obtenir des résultats plus précis.

Dans cet article, nous examinerons comment utiliser quatre clauses booléennes disponibles dans Elasticsearch: must, must_not, devraient et filtrez.

Syntaxe générale

La syntaxe générale d'une requête booléenne utilisée dans Elasticsearch est:

Get _search

"mettre en doute":
"bool":
"devoir": [

]],
"ne doit pas": [

]],
"devrait": [

]],
"filtre": [

]]

Vous n'avez pas à combiner toutes les occurrences booléennes dans une seule requête. Vous pouvez les utiliser comme une unité autonome.

Booléen doit

Disons que vous avez un index contenant des blogs. Nous pouvons récupérer les documents où le système d'exploitation est une machine Windows. Vous trouverez ci-dessous un exemple de requête:

Get / kibana_sample_data_logs / _search

"mettre en doute":
"bool":
"devoir": [
"terme":
"machine.OS ":
"Valeur": "Win"


]]


Comme le montre l'exemple de réponse, le résultat ci-dessus doit renvoyer les valeurs où le système d'exploitation est Windows.

Booléen must_not

De même, nous pouvons utiliser l'occurrence incontournable pour supprimer le terme où le système d'exploitation est Windows.

Prenez l'exemple de requête ci-dessous:

Get / kibana_sample_data_logs / _search

"mettre en doute":
"bool":
"ne doit pas": [
"terme":
"machine.OS ":
"Valeur": "Win"


]]


Cette requête filtre tous les enregistrements où la machine.Le système d'exploitation est une machine Windows. Vous trouverez ci-dessous un exemple de résultat:

Filtre booléen

Le filtre booléen supprimera tous les documents qui ne correspondent pas à la condition spécifiée.

Par exemple, nous pouvons filtrer les journaux où le nombre d'octets est supérieur à 1000.

Nous pouvons exécuter une requête comme indiqué ci-dessous:

Get / kibana_sample_data_logs / _search

"mettre en doute":
"bool":
"filtre": [
"gamme":
"octets":
"GTE": 10000


]]


La réponse ne doit inclure que les documents où le nombre d'octets est supérieur à la valeur définie.

Exemple de réponse:

Vous pouvez également combiner un filtre avec d'autres événements booléens. Par exemple, nous recherchons d'abord des documents correspondants où le système d'exploitation est gagné, puis filtrons le nombre d'octets supérieurs à 10000.

Obtenez kibana_sample_data_logs / _search

"mettre en doute":
"bool":
"devoir": [
"terme":
"machine.OS ":
"Valeur": "Win"


]],
"filtre": [
"gamme":
"octets":
"GTE": 10000


]]


Dans ce cas, nous avons d'abord récupéré les documents où le système d'exploitation contient le terme «victoire». Nous utilisons ensuite les résultats et le filtre pour le nombre d'octets supérieurs à 10000.

Les documents résultants seront similaires à celui ci-dessous:

Booléen devrait

L'occurrence booléenne finale que vous pouvez utiliser est le devrait. Le devait étroitement similaire au must, mais il est moins strict.

Obtenez kibana_sample_data_logs / _search

"mettre en doute":
"bool":
"devrait": [
"correspondre":
"machine.OS ":" OSX "

]]


L'exemple doit renvoyer les enregistrements que la chaîne «OSX» apparaît dans le champ OS.

Conclusion

Dans cet article, vous avez appris à travailler avec la requête booléenne dans Elasticsearch et les résultats de filtre basés sur des conditions spécifiques.