Документ в OpenSearch - источник документа, структура и примеры

OpenSearch logo OpenSearch

Если в базе данных SQL строки данных хранятся в таблицах, то в OpenSearch данные хранятся в виде нескольких документов внутри индекса. Однако на этом аналогия заканчивается, так как работа с документами и индексами в OpenSearch существенно отличается от работы с реляционными базами данных.

Например, документами могут быть:

  • Продукты в индексе электронной коммерции
  • Строки журнала в приложении для регистрации данных
  • Строки счета-фактуры в системе выставления счетов-фактур

Поля документа

Каждый документ представляет собой JSON-структуру, которая в конечном итоге рассматривается как набор пар "ключ:значение". Эти пары затем индексируются способом, определяемым отображением документа. Картография определяет тип данных поля: текст, ключевое слово, плавающая величина, время, геоточка или другие типы данных.

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

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

Источник документа

Источник документа OpenSearch состоит из исходных данных в формате JSON до их индексации. Эти данные извлекаются при выполнении поискового запроса.

Документы и архитектура индексов

Обратите внимание, что в разных приложениях "документ" может рассматриваться по-разному. Например, в системе выставления счетов мы можем иметь архитектуру, в которой счета хранятся как документы (1 документ на счет), или индексную структуру, в которой хранится множество документов в виде "строк счета" для каждого счета. Выбор зависит от того, как мы хотим хранить, отображать и запрашивать данные.

Примеры

Создание документа в пользовательском индексе:

В приведенном выше запросе мы не указали ID документа, поэтому операция индексации генерирует уникальный ID документа. Здесь _doc - это тип документа.

В приведенном выше запросе документ будет создан с идентификатором 1.

Для получения документа из индекса по идентификатору можно использовать следующий запрос 'GET':

Ниже приведен результат, который содержит документ (в поле _source) в качестве метаданных:

Avatar for Gnostis
Gnostis
Добавить комментарий