Elasticsearch — Урок 4.2 Обновление данных

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

Читать далее Elasticsearch — Урок 4.2 Обновление данных

Elasticsearch — Урок 4.1 Индексирование данных

Давайте для примера проиндексируем документ ниже:

Документ, который мы только что проиндексировали, уникально идентифицируется индексом (example4), типом (person) и идентификатором (1). Вы можете указать свой идентификатор, как в данном случае или позволить Elasticsearch выбрать его для вас. Если вы хотите указать идентификатор, вы должны использовать PUTметод. Если вы используете POST, документу автоматически присваивается уникальный идентификатор. Ответ на предыдущую команду:

Читать далее Elasticsearch — Урок 4.1 Индексирование данных

Elasticsearch — Урок 3 Моделирование

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

Elasticsearch — Урок 3.9 Маршрутизация или в поисках шарда

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

Читать далее Elasticsearch — Урок 3.9 Маршрутизация или в поисках шарда

Elasticsearch — Урок 3.8 Отношения между документами

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

Читать далее Elasticsearch — Урок 3.8 Отношения между документами

Elasticsearch — Урок 3.7 Маппинг одного и того же поля с разными типами данных

Иногда появляется потребность поддерживать разные запросы для одного и того же поля. Например у нас есть поле заголовка title и мы хотим делать как полнотекстовые запросы так и запросы на точное соответствие. Первое что приходит на ум, это создать два поля и указать им разные типы данных, например:

Читать далее Elasticsearch — Урок 3.7 Маппинг одного и того же поля с разными типами данных

Elasticsearch — Урок 3.6 Специализированные типы данных

Elasticsearch поддерживает следующие специализированные типы данных:

  • IP : используется для хранения IP-адреса
  • Completion: используется для поддержки функции автозаполнения
  • Percolator: используется для поддержки обратного поиска

Читать далее Elasticsearch — Урок 3.6 Специализированные типы данных

Elasticsearch — Урок 3.5 Тип геоданные

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

Elasticsearch поддерживает два типа данных для хранения местоположения:

Читать далее Elasticsearch — Урок 3.5 Тип геоданные

Elasticsearch — Урок 3.4 Сложные типы данных

В предыдущем уроке мы говорили о простых типах данных. В этом уроке мы поговорим о том, как установить схему для массивов, объектов и вложенных объектов.

Читать далее Elasticsearch — Урок 3.4 Сложные типы данных