Elasticsearch, открытие!

Готовы к новому журналу? Сегодня мы рассмотрим Elasticsearch, что это такое, как он используется, зачем его использовать и в какой момент его следует применять, а также несколько практических примеров в конце. Elasticsearch — это механизм поиска и анализа данных, предназначенный для работы с большими объемами данных.

Что такое ElasticSearch

Согласно официальному сайту Elastic, «Elasticsearch — это распределенный, бесплатный и открытый механизм поиска и анализа данных для всех типов данных, включая текстовые, числовые, геопространственные, структурированные и неструктурированные данные».

Форма хранения, которую он использует для текста, — это структура перевернутого индекса, поиск слова, уникального во всех документах, которые вы сохранили на elastic, когда оно уже получено, при поиске возвращает все документы, в которых есть это уникальное слово во всех документах, которые вы просмотрели. Однако числовые и географические поля хранятся в дереве BKD, а текстовые поля — в инвертированном индексе, как я упоминал выше.

Согласно Stringfixer, «дерево KDB (k-мерное B-дерево) — это древовидная структура данных для разбиения k-мерного пространства поиска. Цель KDB-дерева — обеспечить эффективность поиска сбалансированного kd-дерева, обеспечивая при этом блочно-ориентированное хранение B-дерева для оптимизации доступа к внешней памяти».

Извлечение данных, как это делает RestAPI, является одним из его отличительных особенностей, поскольку RestAPI может выполнить это просто и быстро. API поддерживает структурированные запросы, полнотекстовые запросы и сложные запросы. Запросы создаются с помощью Query DSL (Domain Specific Language) — языка запросов, основанного на json, мы должны представить Query DSL в виде AST (Abstract Syntax Tree). Ниже я приведу, что такое Query DSL и AST, а также краткое описание того и другого.

Для чего используется Elasticsearch?

Благодаря скорости, производительности, масштабируемости, простоте и интеграции с другими инструментами, которыми обладает elastic, его можно использовать для:

  • Поиск приложений
  • Поиск по сайту
  • Корпоративный поиск
  • Ведение журналов и аналитика журналов
  • Показатели инфраструктуры и мониторинг контейнеров
  • APM (мониторинг производительности приложений)
  • Анализ и визуализация геопространственных данных
  • Аналитика безопасности
  • Аналитика корпоративных данных

Что такое Query DSL?

Querydsl — это java-фреймворк, который позволяет генерировать безопасные с точки зрения типов запросы с синтаксисом, похожим на JPQL, SQL и другие поддерживаемые запросы.

Что такое АСТ?

Согласно Twilio «Абстрактные синтаксические деревья или AST — это древовидные представления кода. Они являются фундаментальной частью работы компилятора. Когда компилятор преобразует некоторый код, в основном происходят следующие шаги:»

  • Лексический анализ — известен как токенизация
  • Анализ синтаксиса — Известен как синтаксический разбор
  • Генерация кода

Какие языки программирования поддерживаются в Elasticsearch?

Elasticsearch поддерживает множество языков, к которым относятся:

  • Java
  • JavaScript (Node.js)
  • Перейти
  • .NET (C#)
  • PHP
  • Perl
  • Python
  • Руби

Время для практики

Поскольку он предоставляет Rest API, он принимает HTTP-запросы, используя четыре глагола GET, POST, PUT и DELETE.

1| endereco_da_api:porta/indice/tipo_do_documento
2| example- http://localhost:9200/futebol/jogador
Войдите в полноэкранный режим Выход из полноэкранного режима

POST-запрос к uri

Выполняет индексирование документа, данные которого должны быть переданы в виде объекта JSON в теле запроса, пример:

POST http://localhost:9200/futebol/jogador
{
    "nome": "Édson Arantes do Nascimento",
    "apelido": "Pelé",
    "titulos_mundiais": [
        "1958",
        "1962",
        "1970"
    ]
}
Войдите в полноэкранный режим Выход из полноэкранного режима

Возвращает все документы заданного индекса, пример:

GET http://localhost:9200/futebol/jogador/_search
{
    "query": {
        "match": {
            "apelido": {
            "query": "Pelé"
            }
        }
    }
}
Войдите в полноэкранный режим Выход из полноэкранного режима

Запрос PUT к uri/_id

_id должно быть значением идентификационного кода документа. Если _id относится к существующему документу, замените поля документа на JSON-тело запроса.

Запрос DELETE для uri/_id

_id должно быть значением идентификационного кода документа. Если _id относится к существующему документу, физически удаляет документ из индекса, в котором он проиндексирован.

Заключение

Итак, как мы видим, Elastic search очень хорош, это очень интересная тема, способ использования, функции, производительность, которыми он обладает, могут помочь вам в нескольких ситуациях, через которые вы проходите. Жаль, что я не знал об этом раньше, очень рекомендую.

ВСЕ

  • Может ли ElasticSearch быть полезным для вас?
  • Сталкивались ли вы с проблемами, связанными с объемом больших данных?
  • Знаете ли вы другой инструмент лучше, чем этот?
  • Применяете ли вы этот инструмент в своей работе? Почему?

Ответьте на вопросы в комментариях.

Это был журнал №16. Сегодня я решил поговорить об Elasticsearch, на следующей неделе я расскажу о Redis, vlw. Давайте попрощаемся здесь. Мы вернемся еще с одним бревном.

Была ли эта статья полезной для вас?
Оставьте комментарий ниже.

Ссылки

  • Официальный сайт Elastic
  • Эластичная документация
  • Пример Python
  • Что такое эластичный
  • Что такое RestAPI
  • Что такое BKD Tree
  • O que é Indice Invertido

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