Come uso Elasticsearch in Python?

Come uso Elasticsearch in Python?
ElaSticSearch è un motore di ricerca e analisi altamente disponibile gratuito e open source, basato sul progetto Apache Lucene. ElasticSearch memorizza i suoi dati in formato JSON, rendendo molto facile da usare.

Fornisce un'API REST semplice e potente per eseguire una raccolta di attività dalla creazione di documenti, monitoraggio della salute dei cluster e altro ancora.

Python è uno dei linguaggi di programmazione più popolari e tende a integrare molto bene ElasticSearch.

In questa guida, esamineremo come eseguire l'uso del client Python di Elasticsearch per interagire con il cluster di ElasticSearch.

Configurazione dell'ambiente

Prima di collegare il client Python di Elasticsearch, è bene assicurarsi di configurare l'ambiente.

Passaggio 1: installazione di elasticiarch

Il primo passo è installare e impostare il cluster Elastisearch sul nostro sistema. In questa guida, useremo un server Ubuntu.

Inizia aggiornando i tuoi repository:

Sudo Apt-get Installa Aggiornamento

Importa la chiave PGP Elasticsearch.

Wget -qo - https: // artefatti.elastico.CO/GPG-KEY-ELASTICEARCH | sudo Apt-Key Aggiungi -

Installa il pacchetto Apt-Transport-Https richiesto:

sudo apt-get installa apt-transport-https

Salva il repository.

Echo "Deb https: // artefatti.elastico.CO/Pacchetti/7.X/APT stabile principale "| sudo tee/etc/apt/fonti.elenco.d/elastic-7.X.elenco

Aggiorna e installa ElaSticSearch

Sudo Apt Aggiornamento
SUDO APT Installa Elasticsearch

Abilita e avvia il servizio:

sudo /bin /systemctl abilita elasticsearch.servizio
sudo systemctl avvia elasticsearch.servizio

Una volta che il servizio è attivo e funzionante, eseguire un ricciolo sull'endpoint di Elasticsearch:

Curl http: // localhost: 9200

Se il servizio è in esecuzione, dovresti vedere un output come mostrato di seguito:


"Nome": "Ubuntu2004",
"cluster_name": "Elasticsearch",
"cluster_uuid": "luk9qsqtsasfzxmsyxqdyg",
"Versione":
"numero": "7.15.0 ",
"build_flavor": "predefinito",
"build_type": "Deb",
"build_hash": "79d65f6e357953a5b3cbcc5e2c7c21073d89aa29",
"build_date": "2021-09-16t03: 05: 29.143308416Z ",
"build_snapshot": false,
"Lucene_Version": "8.9.0 ",
"MINIMINE_WIRE_COMPATILIBILITÀ_VERSION": 6.8.0 ",
"MINIMINE_INDEX_COMPATILIBILITÀ_VERSION": "6.0.0-beta1 "
,
"Slogan": "Sai, per la ricerca"

Passaggio 2: installazione di Python

Il prossimo passo è installare Python. Su Ubuntu/Debian, apri il terminale e inserisci il comando di seguito per confermare la versione Python installata:

Python -Version

Se hai installato Python 3, dovresti vedere un'uscita simile a quella mostrata di seguito:

Python 3.10.0

In caso contrario, installa Python 3 usando il comando:

sudo apt-get installa python3.10

Passaggio 3: installazione del client Elasticsearch

Il passaggio finale è l'installazione del client ElasticSearch. Possiamo farlo usando l'utilità PIP come:

Inizia installando PIP come:

sudo apt-get installa python3-pip

Infine, installa il client Elasticsearch come:

PIP3 Installa ElaSticSearch

Collegamento del client Elasticsearch

Una volta che il nostro ambiente è impostato e configurato, possiamo interagire con Elastic utilizzando il client ElasticSearch.

Inizia creando un file Python.

toccare elastico.Py
Vim Elastic.Py

Assicurarsi che il cluster sia attivo e funzionante

Prima di interagire con il cluster ElasticSearch, assicurarsi che il servizio sia attivo e in esecuzione utilizzando il modulo richieste.

richieste di importazione
substring = "sai, per la ricerca".codificare()
risposta = richieste.get ("http: // 127.0.0.1: 9200 ")
Se la sottostringa in risposta.contenuto:
Stampa ("Elasticsearch è attivo e funzionante!")
altro:
stampa ("qualcosa è andato storto, assicurarsi che il cluster sia attivo!")

Salva ed esegui il file come:

Python Elastic.Py

Produzione:

Elasticsearch è attivo e funzionante!

Connettiti al cluster Elasticsearch

Per connetterci al cluster di Elasticsearch, possiamo implementare il seguente semplice script:

richieste di importazione
da Elasticsearch Import Elasticsearch
substring = "sai, per la ricerca".codificare()
risposta = richieste.get ("http: // 127.0.0.1: 9200 ")
Se la sottostringa in risposta.contenuto:
ES = ElaSticSearch (["host": "localhost", "port": 9200])

Ottieni documento con Python

Per ottenere un documento utilizzando il client Python, puoi fare:

res = es.get (index = "indice-name", id = 1)
print (res ['_ source'])

L'esempio sopra dovrebbe restituire i dettagli sul documento interrogato.

Indicizzare un documento

Per indicizzare un documento, utilizzare il codice:

da DateTime Import DateTime
da Elasticsearch Import Elasticsearch
ES = ElaSticSearch (["host": "localhost", "port": 9200])
doc =
"Autore": "Documento-autore",
"Testo": "un documento di testo",
"Timestamp": DateTime.Ora()

res = es.indice (indice = "campione-indice", id = 2, body = doc)
print (res ['risultato'])

Eliminazione di un documento

Per eliminare un documento:

res = es.delete (index = "indice-name", id = 1)

Chiusura

Questa guida discute su come impostare e utilizzare Elasticsearch con Python usando il cliente di Elasticseach Python.

Per imparare a utilizzare la piena funzionalità della Biblioteca Elasticsearch, considera la documentazione.