Python: ElasticSearch и Kibana

RedDeveloper
31.12.2022 19:08
Python: ElasticSearch и Kibana

Привет, разработчики!

Elastic Search обеспечивает поиск практически в реальном времени, поэтому для достижения лучшей производительности всегда лучше использовать Elastic Search, чем API GET. Elasticsearch быстро развивается, широко внедряется и широко используется. В этом разделе мы обсудим основы elasticsearch для интеграции в Python.🤷♂️

Что такое ElasticSearch? 🤔

Elasticsearch - это популярная поисковая система, которая обеспечивает масштабируемое поисковое решение, поиск в режиме, близком к реальному времени, и поддерживает многопользовательский режим.

Что такое ElasticSearch DSL? 🤔

Elasticsearch DSL - это высокоуровневая библиотека python для помощи в написании и выполнении запросов к Elasticsearch.

Более подробную информацию можно найти в документе .

Настройка и установка:🏗

Я создал docker-composer.yml ниже, чтобы настроить elasticsearch и Kibana внутри docker.🐳.

# I Love Docker.

version: "3.9"

x-wait-for-env: &wait-for-env
  - WAIT_HOSTS=elasticsearch:9200
  - WAIT_HOSTS_TIMEOUT=300
  - WAIT_SLEEP_INTERVAL=5
  - WAIT_HOST_CONNECT_TIMEOUT=5

x-depends-on: &depends-on
  - elasticsearch

services:
  elasticsearch:
    container_name: elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.3
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - xpack.ml.enabled=false
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
    networks:
      - backend

  kibana:
    container_name: kb-container
    image: docker.elastic.co/kibana/kibana:8.5.3
    environment:
      - SERVER_NAME=kibana.localhost
      - ELASTICSEARCH_URL=http://localhost:9200
      - elasticsearch.ssl.verificationMode=none
    networks:
      - backend
    links:
      - elasticsearch
    depends_on: *depends-on
    ports:
      - 5601:5601


networks:
  backend:

Чтобы начать, выполните команду ниже.🪂

#Run the following command to build the instance::🏃

sudo docker-compose pull
sudo docker-compose build

#run
sudo docker-compose up --remove-orphans

Примечание: Kibana предназначена для визуализации данных Elasticsearch. Kibana занимает много памяти, поэтому вы также можете использовать нижеприведенное расширение chrome для визуализации данных elastic serach.😀

Примечание Kibana предназначена для визуализации данных Elasticsearch Kibana занимает

Установите Elasticserach DSL в свой проект:

elasticsearch==*
elasticsearch-dsl==*
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search, Q
client = Elasticsearch(hosts=[settings.ELASTIC_SEARCH_URL])
s.query = Q('bool', must=[Q('match', title='python'), Q('match', body='best')])

Примечание:Q ярлык для создания экземпляра по имени с параметрами.

Q('terms', guid=[_guid for _guid in _guids])

Терминология, связанная с эластичным поиском:

Мы подробно рассмотрим все нижеперечисленные термины в следующей статье.

Поиск "терминов" собирает значения полей существующего документа. Затем Elasticsearch использует эти значения в качестве поисковых терминов. Это может быть полезно при поиске большого набора терминов.

Bool: Запрос, который подбирает документы, соответствующие булевым комбинациям других запросов.

Must: Пункт (запрос) должен присутствовать в соответствующем документе.

Filter: Пункт запроса будет проигнорирован.

Should : Пункт (запрос) должен присутствовать в документе.

Must_not: Пункт (запрос) не должен появляться в документах соответствия.

В следующей статье мы будем изучать ЭП больше.😁.

Так что следите за новостями, увидимся в следующей статье.😄

Веселитесь!

Вы всегда можете найти меня на Twitter 🐦.

Если у вас есть какие-либо дополнения к этому, вы можете оставить комментарий ниже, и если вам понравился этот пост, пожалуйста, хлопайте. 👏.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.