Som alle databaser, vil du opprette, hente, oppdatere og slette poster fra databasen. I motsetning til relasjonsdatabaser, gir Elasticsearch imidlertid ikke et innebygd spørringsspråk som SQL, CQL, etc. I stedet samhandler vi med API -endepunkter som Elasticsearch utsetter, slik at vi kan utføre mange handlinger med enkle HTTP -samtaler.”
I innlegget vil du oppdage hvordan du henter dokumenter som er lagret i Elasticsearch ved hjelp av Get Documents API.
API -syntaks
Get Document API lar oss hente JSON -dokumenter som er lagret i en gitt indeks. Utdraget nedenfor viser forespørselssyntaks for å hente dokumenter.
Få /_doc /<_id>
Du kan også bruke HTTP -metoden for å bekrefte at et dokument eksisterer i stedet for å returnere det. Syntaksen er som vist:
HODE/_doc/<_id>
Forespørselen tar følgende parametere:
Forespørselen støtter også følgende spørringsparametere. Disse lar deg endre hvordan API oppfører seg og spørringens resultat. Disse parametrene inkluderer:
Returverdi
Get -dokumentforespørselen vil ha følgende verdier:
Eksempel - Elasticsearch Fetch -dokumentet
Følgende eksempel viser hvordan du henter et dokument med ID for 'qxya7yib38eq5h5gt9ru' fra indeksen kalt 'kibana_sample_data_logs.'
Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: rapportering"
Når vi har kjørt spørringen over, bør vi få svar som vist:
"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versjon": 1,
"_Seq_no": 2383,
"_primary_term": 1,
"funnet": sant,
"_Source":
"Agent": "Mozilla/5.0 (x11; Linux i686) AppleWebkit/534.24 (khtml, som gecko) krom/11.0.696.50 Safari/534.24 ",
"Byte": 4447,
"Clientip": "70.141.48.11 ",
"Utvidelse": "Zip",
"Geo":
"SrcDest": "Us: BD",
"SRC": "oss",
"Dest": "BD",
"Koordinater":
"Lat": 38.14893833,
"Lon": -89.69870972
,
"vert": "gjenstander.elastisk.co ",
"Indeks": "kibana_sample_data_logs",
"IP": "70.141.48.11 ",
"maskin":
"Ram": 7516192768,
"OS": "Win 8"
,
"minne": null,
"melding": "70.141.48.11 - - [2018-08-01T12: 14: 55.373z] "Get /Kibana /Kibana-6.3.2-Windows-X86_64.ZIP HTTP/1.1 "200 4447"-"" Mozilla/5.0 (x11; Linux i686) AppleWebkit/534.24 (khtml, som gecko) krom/11.0.696.50 Safari/534.24 "",
"PhpMemory": NULL,
"Referer": "http: // twitter.com/suksess/Mary-Weber ",
"Forespørsel": "/Kibana/Kibana-6.3.2-Windows-X86_64.glidelås",
"Svar": 200,
"Tagger": [
"suksess",
"Info"
],
"Timestamp": "2022-08-31T12: 14: 55.373z ",
"URL": "https: // gjenstander.elastisk.co/nedlastinger/kibana/kibana-6.3.2-Windows-X86_64.glidelås",
"UTC_TIME": "2022-08-31T12: 14: 55.373z ",
"begivenhet":
"Dataset": "Sample_web_logs"
Eksempel 2 - Sjekk om dokument eksisterer
Du kan bruke HTTP -metoden for å sjekke om et dokument med den spesifiserte IDen eksisterer før du henter det.
Curl -xhead "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: rapportering"
Hvis dokumentet eksisterer i indeksen, returnerer forespørselen en 200 - OK.
Ellers, hvis dokumentet ikke er funnet i den spesifiserte indeksen, returnerer forespørselen:
"Statuscode": 404,
"feil ikke funnet",
"melding": "404 - ikke funnet"
Eksempel 3 - Fetch spesifikke felt
Vi kan hente spesifikke felt i dokumentet ved å stille inn source_includes -parameteren:
Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru?_source_includes =*.id, clientip, maskin.OS, Response "-H" KBN -XSRF: Rapportering "
Forespørselen ovenfor skal hente dokumentene med den spesifiserte ID -en og bare returnere ID, Clientip, OS og svarfelt.
Responsen er som vist:
"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versjon": 1,
"_Seq_no": 2383,
"_primary_term": 1,
"funnet": sant,
"_Source":
"Clientip": "70.141.48.11 ",
"maskin":
"OS": "Win 8"
,
"Svar": 200
Konklusjon
I denne artikkelen undersøkte du hvordan du henter dokumenter fra en Elasticsearch -indeks ved hjelp av Get Document API.