Не индексируемое поле в Elasticsearch : Примеры использования, конфигурация и многое другое

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

Примеры использования неиндексированных полей

Существует несколько причин, по которым вы можете захотеть использовать неиндексированные поля в Elasticsearch:

  • Оптимизация хранения: Неиндексированные поля позволяют сэкономить место в хранилище, поскольку Elasticsearch не нужно хранить инвертированный индекс для этих полей.
  • Повышение производительности: Не индексируя определенные поля, вы можете сократить время индексирования и повысить общую производительность кластера Elasticsearch.
  • Чувствительные данные: У вас могут быть поля, содержащие конфиденциальные данные, которые не должны быть доступны для поиска или агрегирования.

Настройка неиндексированных полей

Чтобы настроить поле как неиндексируемое, необходимо установить свойство "index" в мапинге полей в значение "false". Вот пример того, как создать индекс с неиндексированным полем:

В этом примере поле "not_indexed_field" имеет тип "keyword" и не индексируется.

Запрос документов с неиндексированными полями

Поскольку неиндексированные поля не доступны для поиска, вы не можете использовать их в запросах типа "match" или "term". Однако вы все равно можете получить эти поля при выборке документов с помощью параметра "_source". Вот пример того, как получить документ с неиндексированным полем:

В этом примере поисковый запрос сопоставляет документы по полю "title", а ответ включает неиндексированное поле в объекте "_source".

Обновление неиндексированных полей

Вы можете обновить неиндексированные поля с помощью API Update или Bulk API. Вот пример того, как обновить неиндексированное поле с помощью API Update:

В этом примере "not_indexed_field" документа с идентификатором "1" обновляется до "new_value".

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий