Hvordan bruker jeg elasticsearch i python?

Hvordan bruker jeg elasticsearch i python?
Elasticsearch er en gratis og åpen kildekode, svært tilgjengelig søk og analysemotor bygget på Apache Lucene-prosjektet. Elasticsearch lagrer dataene sine i JSON -format, noe som gjør det veldig enkelt å bruke.

Det gir et enkelt og kraftig REST API for å utføre en samling oppgaver fra å lage dokumenter, overvåke klyngehelse og mer.

Python er et av de mest populære programmeringsspråkene, og det har en tendens til å utfylle Elasticsearch veldig bra.

I denne guiden vil vi se på hvordan du kan gjøre ved å bruke Elasticsearch Python -klienten for å samhandle med Elasticsearch Cluster.

Miljøoppsett

Før du kobler til Elasticsearch Python -klienten, er det bra å sikre at vi har miljøet konfigurert.

Trinn 1: Installere Elasticsearch

Det første trinnet er å installere og sette opp Elastisearch -klyngen på systemet vårt. I denne guiden vil vi bruke en Ubuntu -server.

Begynn med å oppdatere depotene dine:

sudo apt-get installer oppdatering

Importer Elasticsearch PGP -tasten.

WGET -QO - https: // gjenstander.elastisk.CO/GPG-Key-Elasticsearch | sudo apt-key add -

Installer påkrevd APT-Transport-HTTPS-pakke:

sudo apt-get installere apt-transport-https

Lagre depotet.

ekko "Deb https: // gjenstander.elastisk.CO/Pakker/7.X/Apt Stable Main "| sudo tee/etc/apt/kilder.liste.d/elastic-7.x.liste

Oppdater og installer Elasticsearch

sudo apt oppdatering
sudo apt installer elasticsearch

Aktiver og start tjenesten:

sudo /bin /SystemCTL Aktiver elasticsearch.service
sudo systemctl start elasticsearch.service

Når tjenesten er i gang, utfører du en krøll til Elasticsearch Endpoint:

Curl http: // localhost: 9200

Hvis tjenesten kjører, bør du se en utdata som vist nedenfor:


"Navn": "Ubuntu2004",
"Cluster_name": "Elasticsearch",
"cluster_uuid": "luk9qsqtsasfzxmsyxqdyg",
"Versjon":
"nummer": "7.15.0 ",
"build_flavor": "standard",
"build_type": "Deb",
"build_hash": "79d65f6e357953a5b3cbcc5e2c7c21073d89aa29",
"build_date": "2021-09-16T03: 05: 29.143308416z ",
"build_snapshot": falsk,
"Lucene_Version": "8.9.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
"Tagline": "Du vet, for søk"

Trinn 2: Installere Python

Neste trinn er å installere Python. På Ubuntu/Debian åpner du terminalen og skriver inn kommandoen nedenfor for å bekrefte den installerte Python -versjonen:

Python -Versjon

Hvis du har Python 3 installert, bør du se en utgang som ligner den som er vist nedenfor:

Python 3.10.0

Hvis ikke, installer Python 3 ved å bruke kommandoen:

sudo apt-get install python3.10

Trinn 3: Installere Elasticsearch Client

Det siste trinnet er å installere Elasticsearch -klienten. Vi kan gjøre dette ved å bruke PIP -verktøyet som:

Begynn med å installere Pip som:

sudo apt-get install python3-pip

Til slutt, installer Elasticsearch -klienten som:

PIP3 installer Elasticsearch

Koble til Elasticsearch -klienten

Når miljøet er satt opp og konfigurert, kan vi samhandle med Elastic ved hjelp av Elasticsearch -klienten.

Begynn med å lage en Python -fil.

berør elastisk.py
vim elastisk.py

Forsikre deg om at klyngen er i gang

Før du samhandler med Elasticsearch -klyngen, må du forsikre deg om at tjenesten er i gang med forespørselsmodulen.

Importer forespørsler
substring = "Du vet, for søk".kode ()
Svar = forespørsler.få ("http: // 127.0.0.1: 9200 ")
Hvis substring som svar.innhold:
trykk ("Elasticsearch er i gang!")
ellers:
trykk ("noe gikk galt, sørg for at klyngen er oppe!")

Lagre og kjør filen som:

Python Elastic.py

Produksjon:

Elasticsearch er i gang!

Koble til Elasticsearch Cluster

For å koble til Elasticsearch -klyngen, kan vi implementere følgende enkle skript:

Importer forespørsler
Fra Elasticsearch Import Elasticsearch
substring = "Du vet, for søk".kode ()
Svar = forespørsler.få ("http: // 127.0.0.1: 9200 ")
Hvis substring som svar.innhold:
ES = Elasticsearch (["Host": "LocalHost", "Port": 9200])

Få dokument med Python

For å få et dokument ved hjelp av Python -klienten, kan du gjøre:

res = es.få (indeks = "indeksnavn", id = 1)
trykk (res ['_ kilde'])

Eksemplet ovenfor skal returnere detaljer om det spurte dokumentet.

Indeksering av et dokument

For å indeksere et dokument, bruk koden:

fra DateTime Import DateTime
Fra Elasticsearch Import Elasticsearch
ES = Elasticsearch (["Host": "LocalHost", "Port": 9200])
doc =
"Forfatter": "Dokument-forfatter",
"Tekst": "Et tekstdokument",
"Timestamp": DateTime.nå()

res = es.indeks (indeks = "prøve-indeks", id = 2, body = doc)
trykk (res ['resultat'])

Slette et dokument

For å slette et dokument:

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

Lukking

Denne guiden diskuterer hvordan du konfigurerer og bruker Elasticsearch med Python ved hjelp av Elasticsach Python -klienten.

For å lære hvordan du bruker full funksjonalitet i Elasticsearch -biblioteket, bør du vurdere dokumentasjonen.