Continuer à la section 9
2, requête DSL
Le formulaire utilisé dans la section précédente est
GET /bank/_search { "query": { "match_all": { } }, "sort": [ { "account_number": "asc" }, { "balance": "desc" } ] }
Le style de langage de requête, nous l'appelons
Query DSL
.
1), format de syntaxe de base
Elastisearch fournit un DSl de style Json (langage spécifique au domaine) qui peut effectuer des requêtes. Cela s'appelle Query DSL.
Le langage de requête est très complet et semble un peu compliqué au début. La façon de vraiment l'apprendre est de commencer par quelques exemples de base.
- Structure typique d'une instruction de requête
{
QUERY_NAME:{
ARGUMENT: VALUE,
ARGUMENT: VALUE,
...
}
}
Par exemple:
GET /bank/_search
{
"query": {
"match_all": {}
}
}
- S'il s'agit d'un champ, sa structure est la suivante:
{
QUERY_NAME:{
FIELD_NAME:{
ARGUMENT: VALUE,
ARGUMENT: VALUE,
...
}
}
}
Par exemple:
GET / bank / _search { "query": { "match_all": {} }, "sort": [ { "balance": { "order": "desc" } } ], "from": 0, "size" : 5 } |
---|
-query définit comment interroger; -match_all type de requête [représente toute la requête], es peut combiner un grand nombre de types de requêtes dans une requête pour compléter des requêtes complexes -en plus des paramètres de requête, nous pouvons également passer d'autres paramètres pour modifier la requête résultat. Tels que le tri, la taille; -à partir de + limite de taille, compléter la fonction de pagination; -sort sort, tri multi-champs, les champs suivants seront triés en interne lorsque les champs précédents sont égaux, sinon l'ordre précédent prévaut |
2), retournez quelques champs
GET /bank/_search
{
"query": {
"match_all": {
}
},
"sort": [
{
"balance": {
"order": "desc"
}
}
],
"from": 0,
"size": 5,
"_source": ["balance","firstname"]
}
Renvoie uniquement _source
dans le champ spécifié, similaire dans MySQLselect field_1,field_2,... from table
référence:
Premiers pas avec le moteur de recherche en texte intégral Elasticsearch