КатегорииElasticsearch

Elasticsearch — Урок 3.1 Mapping: схема документов

Маппинг (сопоставление) — это процесс определения схемы или структуры документов. Он описывает свойства полей в документе. Свойства поля включают тип данных (например, string, integer и т.д.) и метаданные.

Подобно тому, как вы определяете схему таблицы в SQL, важно рассказать про схему документов, прежде чем индексировать любые данные. Как мы обсуждали ранее, тип в Elasticsearch похож на таблицу SQL, который группирует документы аналогичного характера (например тип для пользователей, тип для заказов). Каждый тип имеет схему. Наличие разных схем данных также может быть мотивацией для определения нового типа.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Настройка — 2.3 Kibana Console и другие

Далее в статьях мы будем использовать Kibana Console. При использовании других HTTP-клиентов, таких как cURL или Postman, конечная точка Elasticsearch (например http://127.0.0.1:9000) должна быть передана в URL-адресе, при использовании Kibana Console она автоматически подставляется из настроек Kibana. Настоятельно рекомендую использовать Kibana Console во время разработки или для отладки. Вы можете получить доступ к консоли Kibana, перейдя на вкладку «Dev Tools» в панели навигации слева.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Настройка — 2.2 Установка Kibana

Kibana — это веб-интерфейс для визуализации и анализа данных в Elasticsearch. Kibana также предоставляет инструменты для разработчиков, что очень удобно для запуска запросов Elasticsearch. Перед тем, как начать использовать Kibana, вам нужно запустить Elasticsearch. Убедитесь, что версия Kibana соответствует версии Elasticsearch. На момент написания этой статьи была доступна последняя версия Elasticsearch 5.5.2.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Настройка — 2.1 Установка

Установка Elasticsearch

В этом разделе мы будем устанавливать Elasticsearch на локальном компьютере в виде одноузлового кластера. Как только мы начнем работу с кластером, мы научимся использовать API-интерфейсы для проверки работоспособности узлов. Разберем как установить в Windows, Mac OS  и Debian / RPM.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Введение — 1.4 Масштабируемость и доступность

Предположим, мы хотим проиндексировать миллиард документов и обойтись только одним сервером возможно не получиться. Elasticsearch позволяет разделить данные на несколько машин, что позволяет выйти за пределы одной машины и поддерживать высокопроизводительные операции. Части на которые можно разбить данные называются осколками (shards) или шардами. По сути надо только сообщить Elasticsearch количество осколков, остальное он возьмет на себе.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Введение — 1.3 Как работает поиск?

Теперь давайте коротко обсудим, как работает поиск из внутри. Все данные в Elasticsearch хранятся в Apache Lucene как инвертированный индекс. Несмотря на то что данные хранит по факту в Apache Lucene, Elasticsearch предоставляет удобное Api для работы с этими данными.

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Введение — 1.2 Взаимодействие

Взаимодействие с Elasticsearch

Основной способ взаимодействия с Elasticsearch — REST API. По умолчанию API — интерфейс Elasticsearch работает на порту 9200. Api можно классифицировать на следующие виды:

  • API документов: CRUD (Create Retrieve Update Delete) операции с документами
  • API поиска: поиск чего бы то ни было
  • API Индексов: управление индексами (создание, удаление …)
  • API Cat: вместо JSON данных возвращаются в табличном виде
  • API кластера: для управления кластером

Продолжить чтение

КатегорииElasticsearch

Elasticsearch Введение — 1.1 Основные понятия

В этом уроке мы сосредоточимся на основных концепциях Elasticsearch. Начать использовать Elasticsearch очень просто, большинство операций имеют настройки по умолчанию и их легко переопределить.

Elasticsearch — это нечто большее, чем просто поисковая система, она поддерживает сложные агрегации, геофильтры и список продолжается. И самое прекрасное это скорость получение запросов. Чтобы понять, как происходит эта магия, мы кратко рассмотрим, как Elasticsearch устроен внутри. И эти знания помогут нам лучше понять его сильные и слабые стороны. Не беспокойтесь, что Elasticsearch, как любой другой проект с открытым исходных кодом, очень быстро развивается, основные принципы  все равно остаются неизменными.

Продолжить чтение

КатегорииTypeScript

TypeScript: Урок 1 — Основные моменты

JavaScript — по настоящему вездесущий язык программирования. Можно написать веб приложение причем не только frontend, но и backend используя Node.js. И это не все, можно использовать Apache Cordova или ReactNative и другие подобные технологии для написания мобильных приложений , а можно программировать микроконтроллеры используя Kinoma. Бесспорный факт, что JavaScript завоевал популярность и используется практически на любой платформе. 

Как у любого языка программирования, у него есть плюсы и минусы. Он достаточно прост в изучении, изначально он был создан для создания простых быстрых скриптов, сомневаюсь, что создатели могли предположить, что на нем будут писать большие приложения и огромным количеством кода. И вот с созданием больших, надежных приложений на JavaScript все не так здорово, как хотелось бы:

JavaScript — интерпретируемый язык из-за чего мы можем узнать о проблеме (например опечатке), только после выполнения кода, что не очень удобно.

JavaScript — язык прототипов, то бишь не объектно-ориентированный. Что подразумевает другую концепцию работы с объектами, и сложности использования проверенных практик объектно-ориентированного программирования.

JavaScript — динамическая типизация, то тоже доставляет немало головной боли, с проверками на тип значения.

TypeScript — призван помочь решить эти проблемы.  Это строго типизированный объектно-ориентированных язык, который компилируется в JavaScript. Он позволяет использовать хорошо известные практики и шаблоны объектно-ориентированного программирования, а так же проверяет код на этапе компиляции. Полученный JavaScript может выполнять в любой среде в которой работает JavaScript, то есть это самый обычный JavaScript.

Продолжить чтение