Elasticsearch Odaberite određena polja

Elasticsearch Odaberite Odredena Polja



Elasticsearch će zadano vratiti sva polja u dokumentu nakon izvođenja upita za pretraživanje. To je definirano parametrom _source koji sadrži sve podatke pohranjene u zapisu tijekom indeksiranja.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: izvješćivanje'

Izlaz:







Međutim, možda nećete htjeti dohvatiti sva polja iz određenog dokumenta. U ovom vodiču naučit ćete kako odabrati određena polja iz dokumenta.



Opcija polja Elasticsearch

Parametar polja omogućuje nam dohvaćanje određenih polja u zahtjevu za pretraživanje. Osim toga, parametar polja omogućit će nam dohvaćanje jednog ili više polja. Također možete formatirati datume i tipove prostornih podataka pomoću parametra polja.



Na primjer, pretpostavimo da želimo dohvatiti polja indeksa, id-a, naslova, godine_izlaska, popisanih u, trajanja i ocjene iz Netflix indeksa, možemo pokrenuti upit kao što je prikazano u nastavku:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: izvješćivanje' -H 'Vrsta sadržaja: aplikacija/json' -d'
{
'upit': {
'podudaranje': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'polja': [
'indeks',
'iskaznica',
'titula',
'godina_izlaska',
'na popisu',
'trajanje',
'ocjena'
],
'_izvor': netočno

}'

U gornjem zahtjevu koristimo API za pretraživanje za pretraživanje dokumenta s navedenim ID-om u parametru podudaranja.

Zatim koristimo parametar polja za dohvaćanje određenih polja iz ciljnog dokumenta.



Imajte na umu da će Elasticsearch zadano uključivati ​​parametar _source koji se sastoji od svih polja dokumenta. Kako bismo bili sigurni da dohvaćamo samo određena polja, isključujemo parametar _source:

Gornji zahtjev trebao bi vratiti odgovor kao što je prikazano:

{
'uzeo': 1,
'timed_out': netočno,
'_krhotine': {
'ukupno': 1,
'uspješan': 1,
'preskočeno': 0,
'neuspješno': 0
},
'pogoci': {
'ukupno': {
'vrijednost': 1,
'odnos': 'eq'
},
'max_score': 1,
'hitovi': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_rezultat': 1,
'polja': {
'listed_in': [
'Dokumentarci'
],
'trajanje': [
'90 min'
],
'godina_izlaska': [
2020
],
'ocjena': [
'PG-13'
],
'naslov': [
'Dick Johnson je mrtav'
]
}
}
]
}
}

Također možete koristiti parametar _source za definiranje polja koja će se vratiti iz upita za pretraživanje. Primjer je prikazan u nastavku:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: izvješćivanje' -H 'Vrsta sadržaja: aplikacija/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'upit': {
'term': {
'_iskaznica': {
'vrijednost': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

U ovom slučaju, specificiramo polja koja želimo dohvatiti kao niz u parametru izvora. Gornji zahtjev trebao bi vratiti odgovor kao što je prikazano:

{
'uzeo': 0,
'timed_out': netočno,
'_krhotine': {
'ukupno': 1,
'uspješan': 1,
'preskočeno': 0,
'neuspješno': 0
},
'pogoci': {
'ukupno': {
'vrijednost': 1,
'odnos': 'eq'
},
'max_score': 1,
'hitovi': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_rezultat': 1,
'_izvor': {
'duration': '90 min',
'godina_izlaska': 2020.,
'ocjena': 'PG-13',
'title': 'Dick Johnson je mrtav'
}
}
]
}

}

Zaključak

U ovom ste članku naučili kako dohvatiti određena polja iz zahtjeva za pretraživanje pomoću polja i parametara _source.

Da biste saznali više o Elasticsearchu i njegovim mogućnostima, pogledajte naše vodiče na tu temu. Zajamčeno ćete pronaći nešto korisno.

Hvala na čitanju i vidimo se u sljedećem!!