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:
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:
Valore di ritorno
La richiesta del documento GET avrà i seguenti valori:
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.