Elasticsearch Velg spesifikke felt

Elasticsearch Velg Spesifikke Felt



Elasticsearch vil som standard returnere alle feltene i et dokument ved å utføre et søk. Dette er definert av parameteren _source, som inneholder alle dataene som er lagret i posten under indekseringen.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -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 du velger spesifikke felt fra et dokument.



Alternativ for Elasticsearch-felt

Fields-parameteren 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 felt-parameteren.



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





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: rapportering' -H 'Content-Type: application/json' -d'
{
'query': {
'kamp': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'Enger': [
'indeks',
'id',
'tittel',
'utgivelsesår',
'oppført_inn',
'varighet',
'vurdering'
],
'_source': falsk

}'

I forespørselen ovenfor bruker vi søke-API for å søke i dokumentet med spesifisert ID i matchparameteren.

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



Merk at Elasticsearch vil inkludere parameteren _source som standard, som består av alle dokumentfeltene. For å sikre at vi bare henter de angitte feltene, slår vi av parameteren _source:

Forespørselen ovenfor skal returnere et svar som vist:

{
'tok': 1,
'timed_out': usant,
'_shards': {
'totalt': 1,
'vellykket': 1,
'hoppet over': 0,
'mislyktes': 0
},
'treff': {
'Total': {
'verdi': 1,
'relation': 'eq'
},
'max_score': 1,
'treff': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'Enger': {
'listed_in': [
'Dokumentarer'
],
'varighet': [
'90 min'
],
'release_year': [
2020
],
'vurdering': [
'PG-13'
],
'tittel': [
'Dick Johnson er død'
]
}
}
]
}
}

Du kan også bruke parameteren _source for å definere hvilke felt som skal returneres fra et søk. Et eksempel er vist nedenfor:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: rapportering' -H 'Content-Type: application/json' -d'
{
'_source': ['tittel', 'utgivelsesår', 'vurdering', 'varighet'],
'query': {
'begrep': {
'_id': {
'value': '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': usant,
'_shards': {
'totalt': 1,
'vellykket': 1,
'hoppet over': 0,
'mislyktes': 0
},
'treff': {
'Total': {
'verdi': 1,
'relation': 'eq'
},
'max_score': 1,
'treff': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_source': {
'duration': '90 min',
'release_year': 2020,
'rating': 'PG-13',
'title': 'Dick Johnson er død'
}
}
]
}

}

Konklusjon

I denne artikkelen lærte du hvordan du henter spesifikke felt fra en søkeforespørsel ved å bruke feltene og _source-parameterne.

For å lære mer om Elasticsearch og dets evner, sjekk veiledningene våre om emnet. Du finner garantert noe nyttig.

Takk for at du leste og fange deg i neste!!