Elasticsearch Valige konkreetsed väljad

Elasticsearch Valige Konkreetsed Valjad



Elasticsearch tagastab otsingupäringu sooritamisel vaikimisi kõik dokumendi väljad. See on määratletud parameetriga _source, mis sisaldab kõiki indekseerimise ajal kirjesse salvestatud andmeid.

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

Väljund:







Siiski ei pruugi te soovida antud dokumendist kõiki välju tuua. Sellest õpetusest saate teada, kuidas valida dokumendist konkreetseid välju.



Elasticsearchi väljade valik

Väljade parameeter võimaldab meil hankida otsingupäringu konkreetseid välju. Lisaks võimaldab väljaparameeter hankida ühe või mitu välja. Väljade parameetri abil saate vormindada ka kuupäevi ja ruumiandmete tüüpe.



Näiteks oletame, et tahame Netflixi indeksist hankida indeksi, ID, pealkirja, väljalaskeaasta, väljade, kestuse ja reitingu väljad, saame käivitada päringu, nagu on näidatud allpool:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: aruandlus' -H 'Sisu tüüp: rakendus/json' -d'
{
'päring': {
'matš': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'väljad': [
'indeks',
'id',
'tiitel',
'release_year',
'listed_in',
'kestus',
'hinnang'
],
'_source': vale

}'

Ülaltoodud taotluses kasutame otsingu API-d, et otsida vasteparameetris määratud ID-ga dokumendist.

Seejärel kasutame sihtdokumendist konkreetsete väljade toomiseks väljade parameetrit.



Pange tähele, et Elasticsearch sisaldab vaikimisi parameetrit _source, mis koosneb kõigist dokumendiväljadest. Tagamaks, et toome ainult määratud väljad, lülitame parameetri _source välja:

Ülaltoodud päring peaks andma vastuse järgmiselt:

{
'võttis': 1,
'timed_out': vale,
'_shards': {
'kokku': 1,
'edukas': 1,
'vahele jäetud': 0,
'ebaõnnestunud': 0
},
'tabamused': {
'kokku': {
'väärtus': 1,
'relatsioon': 'ekv'
},
'max_score': 1,
'tabamused': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'väljad': {
'listed_in': [
'Dokumentaalfilmid'
],
'kestus': [
'90 min'
],
'release_year': [
2020
],
'hinnang': [
'PG-13'
],
'pealkiri': [
'Dick Johnson on surnud'
]
}
}
]
}
}

Samuti saate kasutada parameetrit _source, et määrata, millised väljad otsingupäringust tagastada. Näide on näidatud allpool:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: aruandlus' -H 'Sisu tüüp: rakendus/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'päring': {
'termin': {
'_id': {
'väärtus': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

Sel juhul määrame lähteparameetris väljad, mida tahame massiivina tuua. Ülaltoodud päring peaks tagastama vastuse järgmiselt:

{
'võttis': 0,
'timed_out': vale,
'_shards': {
'kokku': 1,
'edukas': 1,
'vahele jäetud': 0,
'ebaõnnestunud': 0
},
'tabamused': {
'kokku': {
'väärtus': 1,
'relatsioon': 'ekv'
},
'max_score': 1,
'tabamused': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_allikas': {
'kestvus': '90 min',
'release_year': 2020,
'reiting': 'PG-13',
'pealkiri': 'Dick Johnson on surnud'
}
}
]
}

}

Järeldus

Sellest artiklist õppisite, kuidas tuua otsingupäringust konkreetseid välju, kasutades välju ja parameetreid _source.

Elasticsearchi ja selle võimaluste kohta lisateabe saamiseks vaadake meie selleteemalisi õpetusi. Kindlasti leiate midagi kasulikku.

Täname lugemise eest ja jõuame järgmisesse!