[ES de l'entrée au combat réel] Dix, recherche en texte intégral-ElasticSearch-Advanced-QueryDSL utilisation de base & match_all

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": {}
  }
}

Insérez la description de l'image ici

  • 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

Insérez la description de l'image ici

2), retournez quelques champs

GET /bank/_search
{
    
    
  "query": {
    
    
    "match_all": {
    
    }
  },
  "sort": [
    {
    
    
      "balance": {
    
    
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 5,
  "_source": ["balance","firstname"]
}

Renvoie uniquement _sourcedans le champ spécifié, similaire dans MySQLselect field_1,field_2,... from table
Insérez la description de l'image ici

Document de référence-query-dsl


référence:

Référence Elasticsearch

élastique

Premiers pas avec le moteur de recherche en texte intégral Elasticsearch

Je suppose que tu aimes

Origine blog.csdn.net/runewbie/article/details/106341629
conseillé
Classement