Привет, разработчики!
Elastic Search обеспечивает поиск практически в реальном времени, поэтому для достижения лучшей производительности всегда лучше использовать Elastic Search, чем API GET. Elasticsearch быстро развивается, широко внедряется и широко используется. В этом разделе мы обсудим основы elasticsearch для интеграции в Python.🤷♂️
Elasticsearch - это популярная поисковая система, которая обеспечивает масштабируемое поисковое решение, поиск в режиме, близком к реальному времени, и поддерживает многопользовательский режим.
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.😀
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 🐦.
Если у вас есть какие-либо дополнения к этому, вы можете оставить комментарий ниже, и если вам понравился этот пост, пожалуйста, хлопайте. 👏.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.