Elasticsearch Selectați Câmpuri specifice

Elasticsearch Selectati Campuri Specifice



Elasticsearch va returna implicit toate câmpurile dintr-un document la efectuarea unei interogări de căutare. Aceasta este definită de parametrul _source, care conține toate datele stocate în înregistrare în timpul indexării.

curl -XGET „http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty” -H „kbn-xsrf: raportare”

Ieșire:







Cu toate acestea, este posibil să nu doriți să preluați toate câmpurile dintr-un anumit document. În acest tutorial, veți învăța cum selectați anumite câmpuri dintr-un document.



Opțiunea Elasticsearch Fields

Parametrul câmpuri ne permite să regăsim câmpuri specifice dintr-o solicitare de căutare. În plus, parametrul câmp ne va permite să obținem câmpuri unice sau multiple. De asemenea, puteți formata datele și tipurile de date spațiale folosind parametrul fields.



De exemplu, să presupunem că dorim să extragem câmpurile index, id, title, release_year, listat în, duration și rating din indexul Netflix, putem rula o interogare așa cum se arată mai jos:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: raportare' -H 'Tip conținut: aplicație/json' -d'
{
„interogare”: {
'Meci': {
„_id”: „HXYz_IIBLbuC0z3qKeN2”
}
},
'câmpuri': [
'index',
'id',
'titlu',
'anul lansării',
'listed_in',
'durată',
'evaluare'
],
„_sursă”: fals

}'

În solicitarea de mai sus, folosim API-ul de căutare pentru a căuta documentul cu id-ul specificat în parametrul de potrivire.

Apoi folosim parametrul fields pentru a prelua câmpurile specifice din documentul țintă.



Rețineți că Elasticsearch va include implicit parametrul _source, constând din toate câmpurile documentului. Pentru a ne asigura că preluăm doar câmpurile specificate, dezactivăm parametrul _source:

Solicitarea de mai sus ar trebui să returneze un răspuns așa cum se arată:

{
„a luat”: 1,
'timed_out': fals,
„_shards”: {
„total”: 1,
„de succes”: 1,
„sărit”: 0,
„eșuat”: 0
},
„hits”: {
„total”: {
„valoare”: 1,
„relație”: „echivalent”
},
„max_score”: 1,
'hituri': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
„_score”: 1,
'câmpuri': {
'listed_in': [
'Documentare'
],
'durată': [
'90 min'
],
'anul lansării': [
2020
],
„evaluare”: [
„PG-13”
],
'titlu': [
„Dick Johnson a murit”
]
}
}
]
}
}

De asemenea, puteți utiliza parametrul _source pentru a defini ce câmpuri să returnați dintr-o interogare de căutare. Un exemplu este prezentat mai jos:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: raportare' -H 'Tip conținut: aplicație/json' -d'
{
„_sursă”: [„titlu”, „anul_lansării”, „evaluare”, „durată”],
„interogare”: {
'termen': {
„_id”: {
„valoare”: „HXYz_IIBLbuC0z3qKeN2”
}
}
}

}'

În acest caz, specificăm câmpurile pe care dorim să le extragem ca matrice în parametrul sursă. Solicitarea de mai sus ar trebui să returneze răspunsul așa cum se arată:

{
„a luat”: 0,
'timed_out': fals,
„_shards”: {
„total”: 1,
„de succes”: 1,
„sărit”: 0,
„eșuat”: 0
},
„hits”: {
„total”: {
„valoare”: 1,
„relație”: „echivalent”
},
„max_score”: 1,
'hituri': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
„_score”: 1,
'_sursă': {
„durată”: „90 min”,
„release_year”: 2020,
„evaluare”: „PG-13”,
„title”: „Dick Johnson este mort”
}
}
]
}

}

Concluzie

În acest articol, ați învățat cum să preluați anumite câmpuri dintr-o solicitare de căutare folosind câmpurile și parametrii _source.

Pentru a afla mai multe despre Elasticsearch și capacitățile sale, consultați tutorialele noastre despre acest subiect. Sunteți garantat că veți găsi ceva util.

Mulțumesc că ai citit și te prind în următorul!!