Микросервис indexer

В этой статье вы узнаете о назначении, логике работы, конфигурации и методах микросервиса indexer.

Микросервис indexer служит для управления индексацией и добавления документов в поисковый движок.

Доступ к сервису предоставляется по запросу.

Логика работы

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

Аутентификация

При обращении к сервису аутентификация не нужна.

Service context path

/api/indexer/

Настройки и параметры конфигурации

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm",
    "KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka"
  }
}

Copy-icon
Указываемые на каждом отдельном стенде

{
  "env": {
    "LOGGING_LEVEL": "уровень_логирования",
    "SEARCH_ENGINE_URL": "url_доступа_к_поисковому_движку"
  }
}

Copy-icon

Методы микросервиса

Работа с документами для поискового движка

  • Обновление или добавление (если такого документа в БД еще нет) документа (сущности ProductDocumentDto) в поисковом движке - PUT запрос, /v1/documents
Request parameters

Отсутствуют.

Request body sample
{
  "id": "8289148DC",
  "productId": ""8289148DC",
  "catalogId": "c1000001DC",
  "name": "Футболка мужская",
  "title": "Футболка мужская",
  "description": "Очень хорошая мужская футболка.",
  "longDescription": "Очень хорошая мужская футболка. Отлично подойдет на лето.",
  "assets": [
    {
      "id": "262fc4d6-6414-4efb-ae17-9da53e643976",
      "media": {
        "url": "master/catalog/images/1727080928887-1882559365.jpg",
        "absoluteUrl": "https://ecom-media.digitalchief.tech/master/catalog/images/1727080928887-1882559365.jpg",
        "name": "VdCSfnclhGUQPbxf38uNw.jpg",
        "type": "PHOTO",
        "size": 89975,
        "resolution": "500x500 px"
      },
      "title": "VdCSfnclhGUQPbxf38uNw",
      "altAttr": "Майка",
      "description": "Майка",
      "sign": "",
      "tags": [
        ""
      ]
    }
  ],
  "type": "string",
  "attributeValues": {
    "additionalProp1": {
      "id": "black",
      "name": "Черный"
    },
    "additionalProp2": {
      "id": "black",
      "name": "Черный"
    },
    "additionalProp3": {
      "id": "black",
      "name": "Черный"
    }
  },
  "categories": {
    "additionalProp1": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    },
    "additionalProp2": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    },
    "additionalProp3": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    }
  },
  "prices": "{f74b2e3d-53e4-4370-afdd-146488a88f6e=8.0,b9bf6563-783e-4127-a38f-00b266c6ba48=10.0}",
  "stockStatus": "IN_STOCK"
}
Copy-icon
Response codes

204 - операция выполнена успешно, документ обновлен или добавлен

  • Добавление документа (сущности ProductDocumentDto) в поисковый движок - POST запрос, /v1/documents
Request parameters

Отсутствуют.

Request body sample

{
  "id": "8289148DC",
  "productId": ""8289148DC",
  "catalogId": "c1000001DC",
  "name": "Футболка мужская",
  "title": "Футболка мужская",
  "description": "Очень хорошая мужская футболка.",
  "longDescription": "Очень хорошая мужская футболка. Отлично подойдет на лето.",
  "assets": [
    {
      "id": "262fc4d6-6414-4efb-ae17-9da53e643976",
      "media": {
        "url": "master/catalog/images/1727080928887-1882559365.jpg",
        "absoluteUrl": "https://ecom-media.digitalchief.tech/master/catalog/images/1727080928887-1882559365.jpg",
        "name": "VdCSfnclhGUQPbxf38uNw.jpg",
        "type": "PHOTO",
        "size": 89975,
        "resolution": "500x500 px"
      },
      "title": "VdCSfnclhGUQPbxf38uNw",
      "altAttr": "Майка",
      "description": "Майка",
      "sign": "",
      "tags": [
        ""
      ]
    }
  ],
  "type": "string",
  "attributeValues": {
    "additionalProp1": {
      "id": "black",
      "name": "Черный"
    },
    "additionalProp2": {
      "id": "black",
      "name": "Черный"
    },
    "additionalProp3": {
      "id": "black",
      "name": "Черный"
    }
  },
  "categories": {
    "additionalProp1": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    },
    "additionalProp2": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    },
    "additionalProp3": {
      "id": "c001",
      "name": "Одежда",
      "parentId": "c002",
      "level": 0
    }
  },
  "prices": "{f74b2e3d-53e4-4370-afdd-146488a88f6e=8.0,b9bf6563-783e-4127-a38f-00b266c6ba48=10.0}",
  "stockStatus": "IN_STOCK"
}

Copy-icon
Response codes

201 - операция успешно выполнена, документ индексирован

  • Удаление документа (сущности ProductDocumentDto) из поискового движка - DELETE запрос, /v1/documents/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор документа

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes

204 - операция выполнена успешно, документ удален из индекса

Работа с индексацией

  • Запуск полной индексации каталога - POST запрос, /v1/index/perform-baseline
Request parameters

Отсутствуют.

Request body sample

Отсутствует.

Response sodes

202 - операция выполнена успешно, индексация выполнена

  • Удаление сценария индексации по его названию - DELETE запрос, /v1/index/{indexName}
Request parameters

indexName - path-параметр, обязательный: название сценария ндексации

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 202.

Response codes

202 - операция по удалению сценария индексации выполнена успешно

Связанные статьи

Микросервисы