Elasticsearch Valitse tietyt kentät

Elasticsearch Valitse Tietyt Kentat



Elasticsearch palauttaa oletusarvoisesti kaikki asiakirjan kentät suoritettuaan hakukyselyn. Tämä määritellään parametrilla _source, joka sisältää kaikki tietueeseen indeksoinnin aikana tallennetut tiedot.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: raportointi'

Lähtö:







Et kuitenkaan ehkä halua hakea kaikkia kenttiä tietystä asiakirjasta. Tässä opetusohjelmassa opit valitsemaan asiakirjasta tiettyjä kenttiä.



Elasticsearch Fields -vaihtoehto

Kentät-parametrin avulla voimme hakea tiettyjä kenttiä hakupyynnössä. Lisäksi kenttäparametrin avulla voimme noutaa yhden tai useita kenttiä. Voit myös muotoilla päivämäärät ja paikkatietotyypit kenttäparametrilla.



Oletetaan esimerkiksi, että haluamme hakea indeksi-, tunnus-, otsikko-, julkaisuvuosi-, luettelo-, kesto- ja luokituskentät Netflix-hakemistosta, voimme suorittaa kyselyn alla olevan kuvan mukaisesti:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: raportointi' -H 'Sisältötyyppi: sovellus/json' -d'
{
'kysely': {
'ottelu': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'kentät': [
'indeksi',
'id',
'titteli',
'julkaisuvuosi',
'listed_in',
'kesto',
'arvosana'
],
'_source': false

}'

Yllä olevassa pyynnössä käytämme hakusovellusliittymää etsiäksemme asiakirjaa, jonka hakuparametrissa on määritetty id.

Käytämme sitten fields-parametria hakeaksemme tietyt kentät kohdeasiakirjasta.



Huomaa, että Elasticsearch sisältää oletuksena _source-parametrin, joka koostuu kaikista asiakirjakentistä. Varmistaaksemme, että haemme vain määritetyt kentät, poistamme _source-parametrin käytöstä:

Yllä olevan pyynnön pitäisi palauttaa seuraavanlainen vastaus:

{
'otti': 1,
'timed_out': false,
'_shards': {
'yhteensä': 1,
'onnistui': 1,
'ohitettu': 0,
'epäonnistui': 0
},
'osumat': {
'kaikki yhteensä': {
'arvo': 1,
'relaatio': 'eq'
},
'max_score': 1,
'osumat': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'kentät': {
'listed_in': [
'Dokumentit'
],
'kesto': [
'90 min'
],
'julkaisuvuosi': [
2020
],
'luokitus': [
'PG-13'
],
'otsikko': [
'Dick Johnson on kuollut'
]
}
}
]
}
}

Voit myös käyttää _source-parametria määrittääksesi, mitkä kentät palautetaan hakukyselystä. Alla on esimerkki:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: raportointi' -H 'Sisältötyyppi: sovellus/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'kysely': {
'termi': {
'_id': {
'arvo': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

Tässä tapauksessa määritämme lähdeparametrissa kentät, jotka haluamme noutaa matriisina. Yllä olevan pyynnön pitäisi palauttaa vastaus kuvan mukaisesti:

{
'otti': 0,
'timed_out': false,
'_shards': {
'yhteensä': 1,
'onnistui': 1,
'ohitettu': 0,
'epäonnistui': 0
},
'osumat': {
'kaikki yhteensä': {
'arvo': 1,
'relaatio': 'eq'
},
'max_score': 1,
'osumat': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_lähde': {
'duration': '90 min',
'release_year': 2020,
'luokitus': 'PG-13',
'title': 'Dick Johnson Is Dead'
}
}
]
}

}

Johtopäätös

Tässä artikkelissa opit hakemaan tiettyjä kenttiä hakupyynnöstä käyttämällä kenttiä ja _source-parametreja.

Saat lisätietoja Elasticsearchista ja sen ominaisuuksista tutustumalla aihetta koskeviin opetusohjelmiimme. Löydät varmasti jotain hyödyllistä.

Kiitos, että luit ja seuraa sinua seuraavassa!!