Elasticsearch Seleziona campi specifici

Elasticsearch Seleziona Campi Specifici



Elasticsearch restituirà per impostazione predefinita tutti i campi in un documento dopo l'esecuzione di una query di ricerca. Questo è definito dal parametro _source, che contiene tutti i dati memorizzati nel record durante l'indicizzazione.

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

Produzione:







Tuttavia, potresti non voler recuperare tutti i campi da un determinato documento. In questo tutorial imparerai come selezionare campi specifici da un documento.



Opzione Campi Elasticsearch

Il parametro fields ci consente di recuperare campi specifici in una richiesta di ricerca. Inoltre, il parametro del campo ci consentirà di recuperare uno o più campi. Puoi anche formattare date e tipi di dati spaziali utilizzando il parametro fields.



Ad esempio, supponiamo di voler recuperare i campi index, id, title, release_year, elencati in, duration e rating dall'indice Netflix, possiamo eseguire una query come mostrato di seguito:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: reporting' -H 'Tipo di contenuto: application/json' -d'
{
'interrogazione': {
'incontro': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'campi': [
'indice',
'id',
'titolo',
'Anno di pubblicazione',
'elencato in',
'durata',
'valutazione'
],
'_source': falso

}'

Nella richiesta sopra, utilizziamo l'API di ricerca per cercare il documento con l'ID specificato nel parametro match.

Usiamo quindi il parametro fields per recuperare i campi specifici dal documento di destinazione.



Tieni presente che Elasticsearch includerà per impostazione predefinita il parametro _source, costituito da tutti i campi del documento. Per assicurarci di recuperare solo i campi specificati, disattiviamo il parametro _source:

La richiesta di cui sopra dovrebbe restituire una risposta come mostrato:

{
'preso': 1,
'timed_out': falso,
'_schegge': {
'totale': 1,
'riuscito': 1,
'saltato': 0,
'fallito': 0
},
'colpi': {
'totale': {
'valore': 1,
'relazione': 'eq'
},
'punteggio_max': 1,
'colpi': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_punteggio': 1,
'campi': {
'elencato in': [
'Documentari'
],
'durata': [
'90 minuti'
],
'Anno di pubblicazione': [
2020
],
'valutazione': [
'PG-13'
],
'titolo': [
'Dick Johnson è morto'
]
}
}
]
}
}

Puoi anche utilizzare il parametro _source per definire quali campi restituire da una query di ricerca. Un esempio è mostrato di seguito:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: reporting' -H 'Tipo di contenuto: applicazione/json' -d'
{
'_source': ['title', 'release_year', 'rating', 'duration'],
'interrogazione': {
'termine': {
'_id': {
'valore': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

}'

In questo caso, specifichiamo i campi che desideriamo recuperare come array nel parametro sorgente. La richiesta di cui sopra dovrebbe restituire la risposta come mostrato:

{
'preso': 0,
'timed_out': falso,
'_schegge': {
'totale': 1,
'riuscito': 1,
'saltato': 0,
'fallito': 0
},
'colpi': {
'totale': {
'valore': 1,
'relazione': 'eq'
},
'punteggio_max': 1,
'colpi': [
{
'_index': 'netflix',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_punteggio': 1,
'_fonte': {
'durata': '90 min',
'anno_di_rilascio': 2020,
'valutazione': 'PG-13',
'title': 'Dick Johnson è morto'
}
}
]
}

}

Conclusione

In questo articolo, hai imparato come recuperare campi specifici da una richiesta di ricerca utilizzando i campi e i parametri _source.

Per saperne di più su Elasticsearch e le sue capacità, consulta i nostri tutorial sull'argomento. Sicuramente troverai qualcosa di utile.

Grazie per aver letto e ti becchi nel prossimo!!