Индексирование данных в Elasticsearch с помощью Python
Elasticsearch - это надежный и высокомасштабируемый поисковый и аналитический движок с открытым исходным кодом. Библиотека Elasticsearch Python предоставляет комплексный API для взаимодействия с Elasticsearch, позволяя использовать широкие возможности поиска, индексирования и манипулирования данными в Python-приложениях.
Elasticsearch широко используется в таких приложениях, как поисковые системы, системы регистрации и мониторинга, платформы электронной коммерции, рекомендательные системы и анализ данных. Гибкость, масштабируемость и широкий набор функций делают его идеальным решением для эффективной обработки и поиска больших объемов данных.
Использование данного документа
Чтобы эффективно взаимодействовать со стеком ELK (Elasticsearch, Logstash и Kibana) с помощью Python, Вы можете использовать библиотеку Elasticsearch Python.
Необходимые условия
Чтобы работать с Elasticsearch в Python, Вам нужно установить Elasticsearch и Kibana и убедиться в том, что их серверы запущены. Поэтому рекомендуем устанавливать их, используя ссылки на официальные источники их.
Также необходимо установить библиотеку Elasticsearch-Py. Для этого мы рекомендуем использовать pip:
pip install elasticsearch
Работа со стеком ELK (Elasticsearch, Logstash, and Kibana) с помощью Python
try:
import os
import sys
import elasticsearch
from elasticsearch import Elasticsearch
import pandas as pd
from elasticsearch import RequestsHttpConnection
print(“All modules loaded”)
except Exception as e:
print(“Some modules are missing”)
es=Elasticsearch([
{‘host’:’localhost’,
‘port’:9200,
‘scheme’:’https’
}
])
client = Elasticsearch(hosts=[‘https://localhost:9200’],
verify_certs = False, basic_auth=[“my_admin”, “yourpassword”])
print(client.cluster.health)
print(client.ping())
В коде, указанном выше:
- Импортируйте класс Elasticsearch из библиотеки elasticsearch.
- Создайте экземпляр класса Elasticsearch и укажите хост, порт, сертификаты и учетные данные аутентификации кластера Elasticsearch.
client = Elasticsearch(hosts=[‘https://localhost:9200’], verify_certs = False, basic_auth=[“my_admin”, “yourpassword”])
- Проверьте соединение Elasticsearch:
print(client.cluster.health)
Индексирование документа
document = {
‘title’: ‘Example Document’,
‘content’: ‘This is some example content’
}
response = client.index(index=’my-first-index’, body=document)
#Searching Results
search_results = client.search(index=’first-index’, body={‘query’: {‘match’: {‘content’: ‘example’}}})
#Process the search results:
for hit in search_results[‘hits’][‘hits’]:
print(hit[‘_source’])
В сниппете, приведенном выше:
- Сначала вы создаете документ, а затем индексируете его с помощью следующей команды:
client.index(index=’my-first-index’, body=document)Indexing a document
Минуточку, а что такое индексирование?
Индексирование в Elasticsearch означает хранение и организацию данных в индексе. Индекс в Elasticsearch похож на базу данных. Это логическое пространство имен, в котором хранится один или несколько документов.
- MySQL => Databases => Tables => Columns/Rows
- Elasticsearch => Indices => Types => Documents with Properties
Когда Вы индексируете документ в Elasticsearch, Вы храните его и делаете доступным для поиска в определенном индексе. Каждый документ в Elasticsearch представлен в формате JSON и состоит из пар ключ-значение.
Поиск документа
Метод поиска в Elasticsearch-Py позволяет выполнять различные виды поиска с использованием различных типов запросов, фильтров, агрегаций и опций сортировки. Выполните поиск с помощью метода поиска, найдя документы, полностью соответствующие Вашему запросу:
#Searching Results
search_results = client.search(index=’first-index’, body={‘query’: {‘match’: {‘content’: ‘example’}}})
Теперь выведите исходное поле для совпадающего запроса:
#Process the search results: for hit in search_results[‘hits’][‘hits’]: print(hit[‘_source’])
Заключение
- Elasticsearch используется в различных приложениях, включая поисковые системы, системы регистрации и мониторинга, платформы электронной коммерции, рекомендательные системы и анализ данных.
- Elasticsearch обеспечивает индексацию практически в режиме реального времени, то есть сразу же после индексации документ становится доступным для поиска и анализа. Это очень важно для приложений, требующих обновления данных в режиме реального времени и быстрой реакции на поиск.
- Elasticsearch позволяет организациям создавать эффективные и масштабируемые решения для поиска и аналитики данных. Если Вам нужно создать поисковую систему, выполнить анализ данных или реализовать мониторинг в режиме реального времени, смело выбирайте Elasticsearch.
Ключевые выводы
Из этой статьи Вы узнали, как с помощью Python правильно настроить сервер, создать документ и выполнить поисковый запрос.
Обратите внимание на следующие 5 шагов:
1) Импортируйте модуль Elasticsearch и создайте соединение с Elasticsearch
2) У вас есть документ; создайте для него индекс.
3) Определите поисковый запрос.
4) Выполните поисковый запрос.
5) Обработайте полученные результаты.
Ура !!! Вы все сделали правильно
Примечание – Убедитесь в том, что настроили сервер должным образом; при запуске я увидел несколько ошибок и потратил на их решение несколько часов впустую, о чем подробно расскажу в отдельной статье…




