Elasticsearch Válassza ki a konkrét mezőket

Elasticsearch Valassza Ki A Konkret Mezoket



Az Elasticsearch a keresési lekérdezés végrehajtásakor alapértelmezés szerint visszaadja a dokumentum összes mezőjét. Ezt a _source paraméter határozza meg, amely az indexelés során a rekordban tárolt összes adatot tartalmazza.

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

Kimenet:







Előfordulhat azonban, hogy nem kívánja lekérni az összes mezőt egy adott dokumentumból. Ebből az oktatóanyagból megtudhatja, hogyan válasszon ki bizonyos mezőket egy dokumentumból.



Elasticsearch mezők opció

A mezők paraméter lehetővé teszi, hogy egy keresési kérésben meghatározott mezőket kérjünk le. Ezenkívül a mezőparaméter lehetővé teszi, hogy egyetlen vagy több mezőt is lekérjünk. A dátumokat és a téradattípusokat a mezők paraméterrel is formázhatja.



Tegyük fel például, hogy le szeretnénk kérni az indexet, az azonosítót, a címet, a kiadás_évét, a listában szereplő, időtartamot és értékelési mezőket a Netflix indexéből, akkor lekérdezést futtathatunk az alábbiak szerint:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: jelentéskészítés' -H 'Tartalom típusa: alkalmazás/json' -d'
{
'lekérdezés': {
'mérkőzés': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'mezők': [
'index',
'id',
'cím',
'release_year',
'listed_in',
'időtartam',
'értékelés'
],
'_source': hamis

}'

A fenti kérésben a keresési API-t használjuk a match paraméterben megadott azonosítójú dokumentumban való kereséshez.

Ezután a mezők paramétert használjuk az adott mezők lekérésére a céldokumentumból.



Vegye figyelembe, hogy az Elasticsearch alapértelmezés szerint tartalmazza a _source paramétert, amely az összes dokumentummezőt tartalmazza. Annak biztosítása érdekében, hogy csak a megadott mezőket töltsük le, kikapcsoljuk a _source paramétert:

A fenti kérésnek az alábbi választ kell adnia:

{
'elvette': 1,
'timed_out': hamis,
'_shards': {
'összesen': 1,
'sikeres': 1,
'kihagyott': 0,
'sikertelen': 0
},
'találatok': {
'teljes': {
'érték': 1,
'reláció': 'egyenl'
},
'max_score': 1,
'találatok': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'mezők': {
'listed_in': [
'Dokumentumfilmek'
],
'időtartam': [
'90 perc'
],
'release_year': [
2020
],
'értékelés': [
'PG-13'
],
'cím': [
'Dick Johnson meghalt'
]
}
}
]
}
}

Használhatja a _source paramétert is annak meghatározására, hogy mely mezőket kell visszaadni a keresési lekérdezésből. Az alábbiakban egy példa látható:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: jelentéskészítés' -H 'Tartalom típusa: alkalmazás/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'lekérdezés': {
'kifejezés': {
'_id': {
'érték': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

Ebben az esetben a forrásparaméterben adjuk meg a lekérni kívánt mezőket tömbként. A fenti kérésnek az alábbi választ kell adnia:

{
'vette': 0,
'timed_out': hamis,
'_shards': {
'összesen': 1,
'sikeres': 1,
'kihagyott': 0,
'sikertelen': 0
},
'találatok': {
'teljes': {
'érték': 1,
'reláció': 'egyenl'
},
'max_score': 1,
'találatok': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_score': 1,
'_forrás': {
'duration': '90 perc',
'release_year': 2020,
'értékelés': 'PG-13',
'cím': 'Dick Johnson halott'
}
}
]
}

}

Következtetés

Ebből a cikkből megtanulta, hogyan kérhet le meghatározott mezőket egy keresési kérésből a mezők és a _source paraméterek használatával.

Ha többet szeretne megtudni az Elasticsearch-ről és annak lehetőségeiről, tekintse meg a témával kapcsolatos oktatóanyagainkat. Garantáltan találsz valami hasznosat.

Köszönöm, hogy elolvastad, és várunk a következőben!!