TairSearch est une structure de données propriétaire dédiée à la recherche en texte intégral, compatible avec la syntaxe Elasticsearch. Cette rubrique explique le fonctionnement de la requête bool et présente des modèles courants de requêtes composites utilisant les clauses must, must_not et should.
Fonctionnement
Une requête bool combine plusieurs conditions via différents types de clauses, chacun ayant un comportement logique distinct :
| Clause | Équivalent logique | Comportement |
|---|---|---|
must |
ET | Toutes les conditions doivent correspondre. Les documents correspondant également aux clauses should obtiennent un score de pertinence plus élevé, ce qui influence leur classement dans les résultats. |
must_not |
NON | Les documents correspondant à l'une de ces conditions sont exclus des résultats. |
should |
OU | Les conditions sont facultatives. Lorsque should est le seul type de clause présent, minimum_should_match vaut par défaut 1 (au moins une condition doit correspondre). Lorsqu'elle est combinée avec must ou must_not, minimum_should_match vaut par défaut 0 (les clauses should servent alors uniquement à augmenter le score). |
L'évaluation des clauses suit l'ordre de priorité suivant : must_not > must > should.
Les requêtes bool, ainsi que tout autre type de requête, peuvent être imbriquées au sein d'une requête bool pour exprimer une logique complexe telle que (A AND B) OR C.

Pour consulter la référence complète des commandes TairSearch, reportez-vous à la section Search.
Exécuter des requêtes composites
Les exemples suivants illustrent quatre modèles courants de requêtes bool. Tous utilisent le même index et les mêmes données de document.
Étape 1 : Créer un index
TFT.CREATEINDEX key '{
"mappings": {
"properties": {
"A": { "type": "keyword" },
"B": { "type": "keyword" },
"C": { "type": "keyword" }
}
}
}'
Étape 2 : Ajouter un document
TFT.ADDDOC key '{
"A": "a",
"B": "b",
"C": "c"
}'