Как использовать Elasticsearch в Python?

8 структур данных Python Программирование и разработка

Elasticsearch — это бесплатная высокодоступная поисковая и аналитическая система с открытым исходным кодом, созданная на основе проекта Apache Lucene. Elasticsearch хранит свои данные в формате JSON, что делает его очень простым в использовании.

Он предоставляет простой и мощный REST API для выполнения набора задач, включая создание документов, мониторинг состояния кластера и многое другое.

Python — один из самых популярных языков программирования, и он очень хорошо дополняет Elasticsearch.

В этом руководстве мы рассмотрим, как использовать клиент Elasticsearch Python для взаимодействия с кластером Elasticsearch.

Настройка среды

Перед подключением клиента Elasticsearch Python необходимо убедиться, что у нас настроена среда.

Шаг 1. Установка Elasticsearch

Первым шагом является установка и настройка кластера Elastisearch в нашей системе. В этом руководстве мы будем использовать сервер Ubuntu.

Начните с обновления ваших репозиториев:

sudo apt-get install update

Импортируйте ключ PGP Elasticsearch.

wget -qO — https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add —

Установите необходимый пакет apt-transport-https:

sudo apt-get install apt-transport-https

Сохраните репозиторий.

echo «deb https://artifacts.elastic.co/packages/7.x/apt stable main» | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Обновите и установите Elasticsearch

sudo apt update
sudo apt install elasticsearch

Включите и запустите службу:

sudo /bin/systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

После того, как служба запущена и работает, выполните curl для конечной точки Elasticsearch:

curl http://localhost:9200

Если служба запущена, вы должны увидеть результат, как показано ниже:

{
«name» : «ubuntu2004»,
«cluster_name» : «elasticsearch»,
«cluster_uuid» : «lUk9qSQtSaSfZXMsyxQdyg»,
«version» : {
«number» : «7.15.0»,
«build_flavor» : «default»,
«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»
},
«tagline» : «You Know, for Search»
}

Шаг 2: установка Python

Следующим шагом будет установка Python. В Ubuntu / Debian откройте терминал и введите команду ниже, чтобы подтвердить установленную версию python:

python —version

Если у вас установлен Python 3, вы должны увидеть результат, аналогичный показанному ниже:

Python 3.10.0

Если нет, установите Python 3 с помощью команды:

sudo apt-get install python3.10

Шаг 3. Установка клиента Elasticsearch.

Последний шаг — установка клиента Elasticsearch. Мы можем сделать это с помощью утилиты pip как:

Начните с установки pip как:

sudo apt-get install python3-pip

Наконец, установите клиент Elasticsearch как:

pip3 install elasticsearch

Наконец, установите клиент Elasticsearch как

Подключение клиента Elasticsearch

После того, как наша среда настроена и настроена, мы можем взаимодействовать с elastic с помощью клиента Elasticsearch.

Начните с создания файла Python.

touch elastic.py
vim elastic.py

Убедитесь, что кластер запущен и работает

Перед взаимодействием с кластером Elasticsearch убедитесь, что служба запущена и работает с помощью модуля запросов.

import requests
substring = «You Know, for Search».encode()
response = requests.get(«http://127.0.0.1:9200»)
if substring in response.content:
print(«Elasticsearch is up and running!»)
else:
print(«Something went wrong, ensure the cluster is up!»)

Сохраните и запустите файл как:

python elastic.py

Выход:

Elasticsearch запущен и работает!

Подключитесь к кластеру Elasticsearch

Для подключения к кластеру Elasticsearch мы можем реализовать следующий простой скрипт:

import requests
from elasticsearch import Elasticsearch
substring = «You Know, for Search».encode()
response = requests.get(«http://127.0.0.1:9200»)
if substring in response.content:
es = Elasticsearch([{«host»«localhost»«port»9200}])

Получить документ с Python

Чтобы получить документ с помощью клиента Python, вы можете:

res = es.get(index=«index-name»id=1)
print(res[‘_source’])

Приведенный выше пример должен возвращать сведения о запрошенном документе.

Индексирование документа

Чтобы проиндексировать документ, используйте код:

from datetime import datetime
from elasticsearch import Elasticsearch
es = Elasticsearch([{«host»«localhost»«port»9200}])
doc = {
«author»«document-author»,
«text»«A text document»,
«timestamp»: datetime.now()
}
res = es.index(index=«sample-index»id=2body=doc)
print(res[‘result’])

Удаление документа

Чтобы удалить документ:

res = es.delete(index=«index-name»id=1)

Заключение

В этом руководстве обсуждается, как настроить и использовать Elasticsearch с Python с помощью клиента Python Elasticseach.

Оцените статью
bestprogrammer.ru
Добавить комментарий