КатегорииElasticsearch

Elasticsearch — Урок 3.2 Разница между полнотекстовым поиском и точным соответствием

В этом уроке мы познакомимся с анализаторами и почему они необходимы для текстового поиска. Допустим, у нас есть документ, содержащий следующую информацию:

{
   "date": "2017/02/01",
   "desc": "В Москве все выходные будут дожди"
 }

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

Категории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 кластера: для управления кластером

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