Работа через API

Взаимодействие пользовательских приложений с кластером OpenSearch производится через методы REST API, доступные на машинах с OpenSearch Coordinator. В качестве среды отладки отдельных сценариев работы рекомендуется использовать раздел «Dev Tools». В данном разделе приведены примеры запросов к REST API, используемые в интерфейсе OpenSearch Dashboards, но в общем виде обращение к кластеру будет производиться посредством запросов вида:
Request type=java
curl --location --request GET 'https://<OS_coordinator_host>:9200/<index_name>/_doc/<document_id>' \
--header 'Authorization: Basic <Place authorization Header here>'
Приступая к работе с индексами и данными, выполните следующие шаги:
  1. Выполните вход на Платформу через Сервис IAM (услуга 1.13).
  2. Выберите в списке компонент «Opensearch-dashboard».

Работа с индексами

Создание индекса

Индексы OpenSearch имеют следующие ограничения на имена:
  • Все буквы должны быть строчными.
  • Имена индексов не могут начинаться с подчеркивания (_) или дефиса (-).
  • Имена индексов не могут содержать пробелы, запятые или следующие символы: :, ", *, +, /, \, |, ?, #, > или <.
Для создания индекса выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в консоли запрос на создание индекса.
    Пример создания индекса:
    Request type=java
    POST j4/_doc
    { "title": "Movie_1" }
    
    Ответ запроса:
    Response type=java
    {
      "_index" : "j4",
      "_id" : "Ahub7oUBpl-8bh-3uZ7Q",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 2,
        "failed" : 0
      },
      "_seq_no" : 1,
      "_primary_term" : 1
    }
    

Добавление полей в индекс без полного перестроения

Для добавления поля в индекс без полного перестроения выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в консоли запрос на добавление поля.
    Пример запроса:
    Request type=java
    PUT j4/_settings?allow_no_indices=true
    {
      "index": {
        "default_pipeline": ""
      }
    }
    
    Ответ запроса:
    Response type=java
    {
      "acknowledged" : true
    }
    
    Новый параметр появится в списке настроек индекса:
    Index type=java
    {
      "j4" : {
        "settings" : {
          "index" : {
            "number_of_shards" : "1",
            "provided_name" : "j4",
            "default_pipeline" : "",
            "creation_date" : "1674745545139",
            "number_of_replicas" : "1",
            "uuid" : "904KfS1oS32Ez7hI71eKEA",
            "version" : {
              "created" : "136227827"
            }
          }
        }
      }
    }
    

Поиск по индексу

Для поиска по индексу выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в консоли запрос на поиск.
    Пример запроса:
    GET j4/_search
    Ответ запроса:
    Response type=java
    {
      "took" : 3,
      "timed_out" : false,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 2,
          "relation" : "eq"
        },
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "j4",
            "_id" : "_hub7oUBpl-8bh-3hp3R",
            "_score" : 1.0,
            "_source" : {
              "title" : "Movie_1
            }
          },
          {
            "_index" : "j4",
            "_id" : "Ahub7oUBpl-8bh-3uZ7Q",
            "_score" : 1.0,
            "_source" : {
              "title" : "Movie_2"
            }
          }
        ]
      }
    }
    

Просмотр параметров индекса

Для просмотра параметров индекса выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли запрос на вывод параметров требуемого индекса.
    Пример запроса:
    GET j4/_settings
    Ответ запроса:
    Response type=java
    {
    "j4" : {
     "settings" : {
       "index" : {
         "creation_date" : "1674745545139",
         "number_of_shards" : "1",
         "number_of_replicas" : "1",
         "uuid" : "904KfS1oS32Ez7hI71eKEA",
         "version" : {
           "created" : "136227827"
         },
         "provided_name" : "j4"
       }
     }
    }
    }
    

Работа с данными

Запись данных

Для записи данных выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню слева и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли запрос:
    Request type=json
     POST *index*/_doc/2
      {
         "Description": "To be or not to be, that is the question."
      }
    
  4. Откройте боковое меню слева и перейдите в раздел «OpenSearch Dashboards» - «Discover».
  5. Выполните поиск записей журнала за промежуток времени выполнения команды из шага 3. Для этого нажмите на поле со временем, расположенное справа вверху, затем задайте требуемый интервал и нажмите на кнопку «Update».

Просмотр данных

Для просмотра данных выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню слева и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли запрос на поиск:
    GET /*index*/_search

Редактирование данных

Для редактирования данных выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню слева и перейдите в раздел «Management» - «Dev Tools».
  3. Найдите требуемую запись посредством выполнения в открытой консоли запроса:
    GET /*index*/_search
  4. Выберите интересующую запись и сохраните ее _ID.
  5. Внесите изменения в выбранную запись посредством выполненения в открытой консоли запроса:
    Request type=json
    POST /*index* /_update/ *_ID*
    {
     "doc": {
     "title": "test test"
     }
    }
    
  6. Проверьте корректность измененных данных:
    GET /*index*/_doc/*_ID*

Поиск данных

Поиск по критериям

Для поиска по критериям выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли запрос на создание индекса с новым полем.
Пример запроса:
Request type=json
GET /*index*/_search
{
 "query": {
 "match": {
 "year": "1962"
  }
 }
}

Поиск по диапазону числа/даты

Для поиска по диапазону числа/дат выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли соответствующий запрос.
    Пример поиска по диапазону числа:
    Request type=json
    GET *index*/_search
    {
     "query": {
     "range": {
     "id": {
     "gte": 0,
     "lte": 20
        }
       }
      }
     }
    
    Пример поиска по диапазону даты:
    Request type=json
    GET /*index*/_search
    {
     "query": {
     "range": {
     "@timestamp": {
     "gte": "2023-01-30T15:21:41.207Z",
     "lte": "2023-02-02T15:21:41.207Z"
          }
        }
      }
    }
    

#### Полнотекстовый поиск

Для полнотекстового поиска выполните следующее:

1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
3. Выполните в открытой консоли соответствующий запрос.
 
Пример запроса:

```json name=Request type=json
GET /*index*/_search?pretty=true
{"query" : {"match_phrase": {"key": "value"}}}

Нечеткий поиск

Для нечеткого поиска выполните следующее:
  1. Выполните вход в интерфейс администрирования под пользователем с правами администратора.
  2. Откройте боковое меню и перейдите в раздел «Management» - «Dev Tools».
  3. Выполните в открытой консоли соответствующий запрос.
Пример запроса:
Request type=json
GET /*index*/_search?pretty=true
{"query": {"match": {"key": {"query": "value","fuzziness": "auto"}}}}
Предыдущий раздел
Работа с данными
Следующий раздел
Работа через OpenSearch Dashboards
Была ли страница полезной?