English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'interface de programmation des applications Web (API) est un ensemble de fonctions d'appel ou d'autres instructions de programmation utilisées pour accéder aux composants logiciels spécifiques d'une application Web spécifique. Par exemple, l'API de Facebook aide les développeurs à créer des applications en accédant aux données provenant de Facebook ou à d'autres fonctionnalités, telles que la date de naissance ou la mise à jour de l'état.
Elasticsearch fournit une API REST, qui peut être accédée via HTTP. Elasticsearch utilise certaines conventions que nous allons discuter maintenant.
La plupart des opérations de l'API, principalement les recherches et d'autres opérations, sont destinées à un ou plusieurs indices. Cela aide les utilisateurs à effectuer une seule requête pour rechercher à plusieurs endroits ou sur toutes les données disponibles. De nombreux symboles différents sont utilisés pour effectuer des opérations sur plusieurs indices. Nous en discuterons quelques-uns dans ce chapitre.
POST /index1,index2,index3/_search
{ "query":{ "query":"any_string" } } }
provenant de index1, index2, index3Les objets JSON contiennent any_string.
POST /_all/_search
{ "query":{ "query":"any_string" } } }
Des objets JSON provenant de tous les indices, qui contiennent any_string.
POST /*/_search
{ "query":{ } } }
Les objets JSON provenant de tous les indices qui commencent par une école contenant CBSE.
De plus, vous pouvez également utiliser le code suivant-
POST /*,-schools_gov /_search
{ "query":{ } } }
L'objet JSON provient de tous les indices commençant par "school", mais pas de "school_gov" et contient des indices avec CBSE.
Il reste encore des paramètres de chaîne de requête URL-
ignore_unavailable−Si l'URL index(es) ne contient pas un ou plusieurs, il ne se produira pas d'erreur ou toute opération sera arrêtée. Par exemple, l'index school existe, mais book_shops n'existe pas.
POST /*/_search
{ "query":{ } } }
{ }], 404 }
Considérez le code suivant-
POST /*/
{ "query":{ } } }
Les objets JSON provenant de tous les indices qui commencent par une école contenant CBSE.
trueSi l'URL avec joker ne contient pas d'index, la valeur de ce paramètre empêchera les erreurs. Par exemple, il n'y a pas d'index commençant par schools_pri-
POST /schools_pri*/
{ "query":{ "match_all":{} } }
{ 1 }
Ce paramètre détermine si le joker doit être étendu à un index ouvert ou fermé, ou si les deux opérations doivent être exécutées simultanément. La valeur de ce paramètre peut être ouverte, fermée ou non définie.
Par exemple, fermer l'index de l'école-
POST /schools/
Considérez le code suivant-
POST /*/
{ "query":{ "match_all":{} } }
{ }], }403 }
Elasticsearch offre la fonction de recherche d'index en fonction de la date et de l'heure. Nous devons spécifier la date et l'heure dans un format spécifique. Par exemple, accountdetail-2015.12.30, l'index stockera2015année12mois30 jour, les détails du compte bancaire peuvent être exécutés. Vous pouvez effectuer des opérations mathématiques pour obtenir des détails spécifiques à une date ou à une plage de dates et heures.
format du nom d'index mathématique de la date-
<static_name{expression_mathématique{format_date| fuseau_horaire}}> /<accountdetail-{now-2d{YYYY.MM.dd|utc}}>/_search
static_name fait partie de l'expression et reste inchangé dans chaque index mathématique de date (comme les détails du client). date_math_expr contient une expression mathématique, qui ressemble à now-2d est déterminé dynamiquement comme pour d. date_format contient le format dans lequel la date est écrite dans l'index, comme YYYY.MM.dd. Si aujourd'hui est2015année12mois30 jour, alors<accountdetail- {now-2d {YYYY.MM.dd}}>retournera accountdetail-2015.12.28。
expression | est interprété comme |
---|---|
<accountdetail-{now-d}> | accountdetail-2015.12.29 |
<accountdetail-{now-M}> | accountdetail-2015.11.30 |
<accountdetail-{now{YYYY.MM}}> | accountdetail-2015.12 |
Maintenant, nous allons voir quelques options couramment utilisées dans Elasticsearch, qui peuvent être utilisées pour obtenir des réponses dans un format spécifique.
Nous pouvons obtenir une réponse bien formatée en ajoutant des paramètres de requête URL (c'est-à-dire pretty = true).
POST /schools/_search?pretty = true
{ "query":{ "match_all":{} } }
…………………….. { "_index" : "schools", "_type" : "school", "_id" : "1", "_score" : 1.0, "_source":{ "name":"Central School", "description":"CBSE Affiliation", "street":"Nagan", "city":"paprola", "state":"HP", "zip":"176115", "location": [31.8955385, 76.8380405], "fees":2000, "tags":["Senior Secondary", "beautiful campus"], "rating":"3.5" } } ………………….
Cette option permet de modifier la forme de la statistique de réponse en format lisible par l'homme (si human = true) ou en format lisible par l'ordinateur (si human = false). Par exemple, si human = true, alors distance_kilometer = 20KM;如果human = false,则distance_meter = 20000,此时需要其他计算机程序使用响应。
通过将它们添加到field_path参数中,我们可以过滤对较少字段的响应。例如,
POST /schools/_search?filter_path = hits.total
{ "query":{ "match_all":{} } }
{"hits":{"total":3}}