Jak używać Elasticsearch w Python?

Jak używać Elasticsearch w Python?
ElasticSearch to bezpłatny i open source, wysoce dostępny silnik wyszukiwania i analizy zbudowany w projekcie Apache Lucene. ElasticSearch przechowuje swoje dane w formacie JSON, dzięki czemu jest bardzo łatwy w użyciu.

Zapewnia prosty i potężny interfejs API REST do wykonywania zbioru zadań z tworzenia dokumentów, monitorowania zdrowia klastrów i innych.

Python jest jednym z najpopularniejszych języków programowania i bardzo dobrze uzupełnia Elasticsearch.

W tym przewodniku przyjrzymy się, jak użyć klienta Elasticsearch Python do interakcji z klastrem ElasticSearch.

Konfiguracja środowiska

Przed podłączeniem klienta Elasticsearch Python, dobrze jest upewnić się, że konfigurujemy środowisko.

Krok 1: Instalowanie ElasticSearch

Pierwszym krokiem jest zainstalowanie i skonfigurowanie klastra elastisearch w naszym systemie. W tym przewodniku użyjemy serwera Ubuntu.

Zacznij od aktualizacji repozytoriów:

Aktualizacja instalacji sudo apt-get

Zaimportuj klucz PGP Elasticsearch.

wget -qo - https: // artefacts.elastyczny.CO/GPG-KEY-ELASTICSEARK | sudo apt-key add -

Zainstaluj wymagany pakiet Apt-Transport-HTTPS:

sudo apt-get instaluj apt-transport-https

Zapisz repozytorium.

echo "deb https: // artefakty.elastyczny.co/pakiety/7.x/apt stabilna główna „| sudo tee/etc/apt/źródła.lista.D/Elastic-7.X.lista

Zaktualizuj i zainstaluj ElasticSearch

Aktualizacja sudo apt
sudo apt instal instal elasticsearch

Włącz i uruchom usługę:

sudo /bin /systemCtl Włącz ElasticSearch.praca
sudo systemctl start elasticsearch.praca

Po uruchomieniu usługi wykonaj loki do punktu końcowego ElasticSearch:

curl http: // localhost: 9200

Jeśli usługa działa, powinieneś zobaczyć dane wyjściowe, jak pokazano poniżej:


„Nazwa”: „Ubuntu2004”,
„Cluster_name”: „ElasticSearch”,
„klaster_uuid”: „LUK9QSQTSASFZXMSYXQDYG”,
„Wersja”:
„Numer”: „7.15.0 ",
„Build_flavor”: „domyślnie”,
„Build_Type”: „Deb”,
„Build_hash”: „79D65F6E357953A5B3CBCC5E2C7C21073D89AA29”,
„Build_date”: „2021-09-16t03: 05: 29.143308416Z ",
„Build_snapshot”: False,
„Lucene_version”: „8.9.0 ",
„minimum_wire_compatibility_version”: „6.8.0 ",
„minimum_index_compatibility_version”: „6.0.0-beta1 "
,
„Slandline”: „Wiesz, do wyszukiwania”

Krok 2: Instalowanie Pythona

Następnym krokiem jest zainstalowanie Pythona. Na Ubuntu/Debian otwórz terminal i wprowadź poniższe polecenie, aby potwierdzić zainstalowaną wersję Python:

Python --version

Jeśli masz zainstalowany Python 3, powinieneś zobaczyć wyjście podobne do tego pokazanego poniżej:

Python 3.10.0

Jeśli nie, zainstaluj Python 3 za pomocą polecenia:

sudo apt-get instal Python3.10

Krok 3: Instalowanie klienta ElasticSearch

Ostatnim krokiem jest instalacja klienta ElasticSearch. Możemy to zrobić za pomocą narzędzia PIP jako:

Zacznij od zainstalowania PIP jako:

sudo apt-get instal Python3-Pip

Na koniec zainstaluj ElasticSearch Client jako:

PIP3 Zainstaluj ElasticSearch

Łączenie klienta ElasticSearch

Po skonfigurowaniu i skonfigurowaniu naszego środowiska możemy wchodzić w interakcje z Elastic za pomocą klienta ElasticSearch.

Zacznij od utworzenia pliku Pythona.

dotknij elastycznego.py
Vim Elastic.py

Upewnij się, że klaster jest uruchomiony

Przed interakcją z klastrem ElasticSearch upewnij się, że usługa jest uruchomiona za pomocą modułu żądań.

żądania importu
Substring = "Wiesz, do wyszukiwania".kodować()
Odpowiedź = żądania.Get ("http: // 127.0.0.1: 9200 ")
Jeśli podłoże w odpowiedzi.treść:
Drukuj („ElasticSearch jest uruchomiony!")
w przeciwnym razie:
Drukuj („Coś poszło nie tak, upewnij się, że klaster jest w górę!")

Zapisz i uruchom plik jako:

Python Elastic.py

Wyjście:

ElasticSearch jest uruchomiony!

Połącz się z klastrem ElasticSearch

Aby połączyć się z klastrem ElasticSearch, możemy zaimplementować następujący prosty skrypt:

żądania importu
Z Elasticsearch Import ElasticSearch
Substring = "Wiesz, do wyszukiwania".kodować()
Odpowiedź = żądania.Get ("http: // 127.0.0.1: 9200 ")
Jeśli podłoże w odpowiedzi.treść:
es = elasticsearch ([„host”: „localhost”, „port”: 9200]))

Zdobądź dokument z Pythonem

Aby uzyskać dokument za pomocą klienta Python, możesz zrobić:

res = es.get (index = "indeks-name", id = 1)
print (res ['_ Źródło'])

Powyższy przykład powinien zwrócić szczegóły dotyczące zapytanego dokumentu.

Indeksowanie dokumentu

Aby indeksować dokument, użyj kodu:

z datetime import datetime
Z Elasticsearch Import ElasticSearch
es = elasticsearch ([„host”: „localhost”, „port”: 9200]))
Doc =
„Autor”: „Dokument-autoutor”,
„Tekst”: „Dokument tekstowy”,
„Znacznik czasu”: DateTime.Teraz()

res = es.indeks (indeks = "próbka-index", id = 2, body = doc)
print (res [„wynik”])

Usuwanie dokumentu

Aby usunąć dokument:

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

Zamknięcie

W tym przewodniku omówiono sposób konfigurowania i korzystania z Elasticearch z Pythonem za pomocą klienta ElasticSeach Python.

Aby dowiedzieć się, jak korzystać z pełnej funkcjonalności biblioteki Elasticsearch, rozważ dokumentację.