Elasticsearch Få dokument

Elasticsearch Få dokument
“Elasticsearch er en populær og kraftig søkemotor som kan håndtere store datamengder. I den forstand kan Elasticsearch være relatert til en relasjonsdatabase fordi den lar deg lagre data.

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:

  1. - Angir navnet på indeksen som måldokumentet er lagret.
  2. - Angir den unike IDen til måldokumentet.

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:

  1. Preferanse - definerer målnoden/skjæret som hentet utføres.
  2. sanntid-sikrer at resultatet er absolutt sanntid, i motsetning til standard, som er nær sanntid.
  3. Oppdater - lar forespørselen vente på Elasticsearch Periodic Refresh. Denne parameteren kan også tillate forespørselen å oppdatere skjæret før du utfører henteoperasjonen.
  4. Ruting - spesifiserer ruteoperasjoner til en spesifikk node/skjær.
  5. _Source - En boolsk verdi som bestemmer om forespørselen returnerer _ -kilden som er arkivert.
  6. _source_excludes - Angir en liste over kildefelt ekskludert fra resultatet.
  7. _Source_includes - Kildefelt inkludert i resultatet.
  8. Versjon - Angir versjonsnummeret for samtidighetsadministrasjon.

Returverdi

Get -dokumentforespørselen vil ha følgende verdier:

  1. _index - Navnet på indeksen som de spørte dokumentene hører til.
  2. _id - IDen til det spurte dokumentet.
  3. _Seq_no - Sekvensnummeret til dokumentet som brukes til indeksering.
  4. _PRIMARY_TERM - Viser primærbegrepet for dokumentet.
  5. funnet - indikerer om posten eksisterer eller ikke som en boolsk verdi.
  6. _Routing - representerer den ekspliserende rutingen som er spesifisert i forespørselen.
  7. _Source - holder dokumentdataene som JSON.
  8. _field - viser dokumentfeltene.

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.