Elasticsearch Velg spesifikke felt

Elasticsearch Velg spesifikke felt

Elasticsearch vil standard returnere alle feltene i et dokument når du utfører et søk. Dette er definert av _source -parameteren, som inneholder alle dataene som er lagret i posten under indeksering.

Curl -xget "http: // localhost: 9200/netflix/_doc/hxyz_iiblbuc0z3qken2?pen "-h" kbn -xsrf: rapportering "

Produksjon:

Imidlertid vil du kanskje ikke hente alle feltene fra et gitt dokument. I denne opplæringen lærer du hvordan velg spesifikke felt fra et dokument.

Elasticsearch Fields -alternativet

Feltparameteren lar oss hente spesifikke felt i en søkeforespørsel. I tillegg vil feltparameteren gjøre oss i stand til å hente enkelt- eller flere felt. Du kan også formatere datoer og romlige datatyper ved å bruke feltparameteren.

Anta for eksempel at vi ønsker å hente indeksen, ID, tittel, release_year, oppført i, varighet og rangeringsfelt fra Netflix -indeksen, vi kan kjøre en spørring som vist nedenfor:

Curl -xget "http: // localhost/netflix/_search" -h "kbn -xsrf: rapportering" -h "innholdstype: applikasjon/json" -d '

"spørring":
"kamp":
"_id": "hxyz_iiblbuc0z3qken2"

,
"Enger": [
"Indeks",
"Id",
"tittel",
"Release_year",
"Listed_in",
"varighet",
"vurdering"
],
"_Source": Falsk
'

I forespørselen ovenfor bruker vi Search API for å søke i dokumentet med den spesifiserte IDen i kampparameteren.

Vi bruker deretter feltparameteren for å hente de spesifikke feltene fra måldokumentet.

Merk at Elasticsearch vil standard inkluderer _ -kildeparameteren, bestående av alle dokumentfeltene. For å sikre at vi bare henter de spesifiserte feltene, slår vi av parameteren _ kilde:

Forespørselen ovenfor skal returnere et svar som vist:


"Tok": 1,
"TIMED_OUT": FALSE,
"_Shards":
"Totalt": 1,
"Vellykket": 1,
"hoppet over": 0,
"Mislykket": 0
,
"Hits":
"Total":
"Verdi": 1,
"Relasjon": "Eq"
,
"Max_score": 1,
"Hits": [

"_index": "Netflix",
"_id": "hxyz_iiblbuc0z3qken2",
"_score": 1,
"Enger":
"listet_in": [
"Dokumentarer"
],
"Varighet": [
"90 min"
],
"Release_year": [
2020
],
"vurdering": [
"PG-13"
],
"Tittel": [
"Dick Johnson er død"
]


]

Du kan også bruke _ -kildesparameteren til å definere hvilke felt du vil returnere fra et søk. Et eksempel er vist nedenfor:

Curl -xget "http: // localhost: 9200/netflix/_search" -h "kbn -xsrf: rapportering" -h "innholdstype: applikasjon/json" -d '

"_Source": ["Tittel", "Release_year", "rating", "varighet"],
"spørring":
"begrep":
"_id":
"Verdi": "HXYZ_IIBLBUC0Z3QKEN2"



'

I dette tilfellet spesifiserer vi feltene vi ønsker å hente som en matrise i kildeparameteren. Forespørselen ovenfor skal returnere svaret som vist:


"Tok": 0,
"TIMED_OUT": FALSE,
"_Shards":
"Totalt": 1,
"Vellykket": 1,
"hoppet over": 0,
"Mislykket": 0
,
"Hits":
"Total":
"Verdi": 1,
"Relasjon": "Eq"
,
"Max_score": 1,
"Hits": [

"_index": "Netflix",
"_id": "hxyz_iiblbuc0z3qken2",
"_score": 1,
"_Source":
"Varighet": "90 min",
"Release_year": 2020,
"Rating": "PG-13",
"Tittel": "Dick Johnson er død"


]

Konklusjon

I denne artikkelen lærte du hvordan du henter bestemte felt fra en søkeforespørsel ved hjelp av feltene og _ kildekode -parametere.

Hvis du vil lære mer om Elasticsearch og dets evner, kan du sjekke opplæringen om emnet. Du er garantert å finne noe nyttig.

Takk for at du leser og fang deg i den neste!!