ElasticSearch Ottieni documento

ElasticSearch Ottieni documento
“Elasticsearch è un motore di ricerca popolare e potente in grado di gestire grandi quantità di dati. In questo senso, Elasticsearch può essere paragonabile a un database relazionale perché consente di archiviare i dati.

Come tutti i database, creerai, recupera, aggiorne ed eliminerai i record dal database. Tuttavia, a differenza dei database relazionali, Elasticsearch non fornisce un linguaggio di query integrato come SQL, CQL, ecc. Invece, interagiamo con gli endpoint API che ElasticSearch espone, permettendoci di compiere numerose azioni con semplici chiamate HTTP."

Nel post, scoprirai come recuperare i documenti archiviati in Elasticsearch utilizzando l'API Get Documents.

Sintassi API

L'API GET Document ci consente di recuperare i documenti JSON archiviati in un determinato indice. Lo snippet seguente mostra la sintassi della richiesta per recuperare i documenti.

Get /_doc /<_id>

È inoltre possibile utilizzare il metodo HTTP Head per verificare che esista un documento invece di restituirlo. La sintassi è come mostrata:

TESTA /_doc/<_id>

La richiesta prende i seguenti parametri:

  1. - Specifica il nome dell'indice su cui è archiviato il documento target.
  2. - Specifica l'ID univoco del documento target.

La richiesta supporta anche i seguenti parametri di query. Questi ti consentono di modificare come si comporta l'API e il risultato della query. Questi parametri includono:

  1. Preferenza: definisce il nodo/frammento target su cui viene eseguito il recupero.
  2. Realtime-Garantisce che il risultato sia assoluto in tempo reale, a differenza del valore predefinito, che è vicino al tempo reale.
  3. Aggiorna: consente alla richiesta di attendere ElaSticSearch Aggiorna periodica. Questo parametro può anche consentire alla richiesta di aggiornare il frammento prima di eseguire l'operazione di recupero.
  4. Routing - Specifica le operazioni di percorso su un nodo/frammento specifico.
  5. _Source - Un valore booleano che determina se la richiesta restituisce o meno _Source archiviata.
  6. _Source_Excludes - Specifica un elenco di campi di origine esclusi dal risultato.
  7. _source_includes - Campi di origine inclusi nel risultato.
  8. Versione - Specifica il numero di versione per la gestione della concorrenza.

Valore di ritorno

La richiesta del documento GET avrà i seguenti valori:

  1. _index - Il nome dell'indice in cui appartengono i documenti interrogati.
  2. _id - l'ID del documento interrogato.
  3. _seq_no - Il numero di sequenza del documento utilizzato per l'indicizzazione.
  4. _primary_term - mostra il termine principale per il documento.
  5. trovato - indica se il record esiste o meno come valore booleano.
  6. _Routing - Rappresenta il routing di spiegazione specificato nella richiesta.
  7. _Source - detiene i dati del documento come JSON.
  8. _field - mostra i campi del documento.

Esempio - documento di recupero Elasticsearch

L'esempio seguente mostra come recuperare un documento con l'ID di 'qxya7yib38eq5h5gt9ru' dall'indice chiamato 'kibana_sample_data_logs.'

Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: reporting"

Una volta eseguita la query sopra, dovremmo ottenere una risposta come mostrato:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_version": 1,
"_seq_no": 2383,
"_primary_term": 1,
"trovato": vero,
"_fonte":
"Agente": "Mozilla/5.0 (x11; Linux i686) Applewebkit/534.24 (KHTML, come Gecko) Chrome/11.0.696.50 Safari/534.24 ",
"byte": 4447,
"Clientip": "70.141.48.11 ",
"Extension": "Zip",
"geo":
"srcdest": "Us: BD",
"Src": "Us",
"dest": "BD",
"coordinate":
"Lat": 38.14893833,
"LON": -89.69870972

,
"Host": "artefatti.elastico.CO ",
"INDICE": "kibana_sample_data_logs",
"IP": "70.141.48.11 ",
"macchina":
"RAM": 7516192768,
"sistema operativo": "Win 8"
,
"Memoria": null,
"Messaggio": "70.141.48.11 - - [2018-08-01T12: 14: 55.373Z] "Get /Kibana /Kibana-6.3.2-Windows-X86_64.zip http/1.1 "200 4447"-"" Mozilla/5.0 (x11; Linux i686) Applewebkit/534.24 (KHTML, come Gecko) Chrome/11.0.696.50 Safari/534.24 "",
"phpmemory": null,
"Referer": "http: // twitter.com/Success/Mary-Weber ",
"richiesta": "/kibana/kibana-6.3.2-Windows-X86_64.cerniera lampo",
"Risposta": 200,
"Tag": [
"successo",
"informazioni"
",
"Timestamp": "2022-08-31T12: 14: 55.373Z ",
"URL": "https: // artefatti.elastico.CO/Downloads/Kibana/Kibana-6.3.2-Windows-X86_64.cerniera lampo",
"Utc_time": "2022-08-31T12: 14: 55.373Z ",
"evento":
"Set di dati": "Sample_Web_logs"


Esempio 2 - Controlla se esiste un documento

È possibile utilizzare il metodo HTTP Head per verificare se esiste un documento con l'ID specificato prima di recuperarlo.

Curl -xhead "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru" -h "kbn -xsrf: reporting"

Se il documento esiste nell'indice, la richiesta restituisce un 200 - OK.

Altrimenti, se il documento non viene trovato nell'indice specificato, la richiesta restituisce:


"Ccode status": 404,
"errore non trovato",
"Messaggio": "404 - non trovato"

Esempio 3: prendi campi specifici

Possiamo recuperare campi specifici del documento impostando il parametro Source_Includes:

Curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru?_source_includes =*.ID, Clientip, macchina.OS, Risposta "-H" KBN -XSRF: Reporting "

La richiesta sopra deve recuperare i documenti con l'ID specificato e restituire solo i campi ID, ClientiP, OS e Response.

La risposta è come mostrata:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_version": 1,
"_seq_no": 2383,
"_primary_term": 1,
"trovato": vero,
"_fonte":
"Clientip": "70.141.48.11 ",
"macchina":
"sistema operativo": "Win 8"
,
"Risposta": 200

Conclusione

In questo articolo, hai esplorato come recuperare i documenti da un indice di ElasticSearch utilizzando l'API Get Document.