Selv om dette er et lite API, er det et veldig gunstig verktøy, spesielt for utviklere som kommer fra SQL -databaser. Det kan også redusere læringskurven ved å raskt relatere SQL -spørsmålene til de tilsvarende søkespørsmålene.
Du kan deretter utforske de fulle egenskapene til Elasticsearch Search API og de støttede spørringsspråkene.
Det er å huske på at selv om Elasticsearch støtter SQL, inneholder den forskjellige begrensninger.
Spørringssyntaks
Følgende viser syntaks for Translate API:
Få _SQL/OversettDu kan også sende en postforespørsel til Oversats API som vist i følgende syntaks:
POST _SQL/OVERSIKTAvhengig av klyngekonfigurasjonen din, kan API kreve lesingsprivilegier på indeksen hvis data du ønsker å spørre. Du kan også spesifisere målressursen som et indeksalias eller en datastrøm.
I forespørselen_body kan du spesifisere alle SQL Search API Request Body Parameters. Utforsk dokumentene som er gitt i følgende ressurs for å lære mer:
https: // www.elastisk.CO/Guide/EN/Elasticsearch/Reference/Current/SQL-SEARCH-API.HTML#SQL-SØK-API-REQUEST-BODY
Som et svar, bør spørringen returnere resultatet som tilsvarer søke -API med spørsmål om spørsmål.
Eksempel
For å illustrere best hvordan du bruker denne API -en, vil vi anta at vi har en indeks som heter "Netflix" som inneholder alle dataene om Netflix -filmer og TV -serier.
Anta at vi ønsker å hente de fem beste filmene fra Netflix -indeksen som vi ga ut i år 2020 og over:
Den tilsvarende SQL -spørringen kan uttrykkes som vist nedenfor:
Velg tittel, varighet, rangering, type fra Netflix hvor type = 'film' og release_year> = 2020For å utføre ovennevnte SQL -søk i Elasticsearch, kan vi legge det inn i SQL Search API som vist nedenfor:
Curl -xget "http: // localhost: 9200/_sql?format = txt "-h" kbn -xsrf: rapportering "-h" innholdstype: applikasjon/json "-d 'Den forrige forespørselen skal spørre indeksen og hente matchende poster. Returutgangen er i tekstformat som angitt nedenfor:
Som vi kan se, returnerer Elasticsearch den forventede produksjonen.
For å returnere utdataene som JSON, kan vi stille formatet til JSON som vist nedenfor:
Curl -xget ""http: // localhost: 9200/_sql?format = json ""-h"" kbn -xsrf: rapportering ""-h"" innholdstype: applikasjon/json ""-d 'Produksjon:
Konverter SQL -spørring til søkeforespørsel
For å konvertere det forrige SQL -søket til en ELASTICSEARCH -forespørsel, kan vi gi den til Translate API som vist nedenfor:
Curl -xget ""http: // localhost: 9200/_sql/translate"" -h ""kbn -xsrf: rapportering"" -h ""innholdstype: applikasjon/json"" -d 'API skal analysere inngangen SQL -inngangen og konvertere den til en gyldig søkeforespørsel, som vist i følgende utdata:
Du kan deretter bruke dette forespørselsformatet til å sende til Elasticsearch Search API som vist nedenfor:
Curl -xpost ""http: // localhost: 9200/netflix/_search"" -h ""kbn -xsrf: rapportering"" -h ""innholdstype: applikasjon/json"" -d 'Tilsvarende skal forespørselen returnere lignende data som vist nedenfor:
Konklusjon
Gjennom dette innlegget oppdaget du hvordan du kunne bruke SQL -spørsmål for å hente data fra en eksisterende Elasticsearch Index. Du lærte også hvordan du bruker Translate SQL API for å konvertere en gyldig SQL -spørring til en Elasticsearch -forespørsel.
"