Как исправить «Имя типа сопоставления документа не может начинаться с «_», найдено: [_create]_» elasticsearch?

Я использую Nodejs для индексации некоторых данных в Elasticsearch (размещенных в kubernetes), я использую метод client.create() для индексации документа в Elasticsearch. Если я запускаю код на локальном хосте и конечной точке kubernetes Elasticsearch, все работает нормально. Но после развертывания того же кода при попытке проиндексировать документ я получаю сообщение об ошибке:

"[invalid_type_name_exception] Document mapping type name can't start with '_', found: [_create] :: {"path":"/index_name/_create/docId"]".

Версия Elasticsearch «6.3.0» и версия node_module «^ 16.0.0». Кроме того, он работал изначально, но перестал работать в последние несколько дней. Я думаю, что проблема связана с некоторыми совместимостью и конфигурациями, кто-нибудь может помочь?

Я попытался использовать client.index вместо client.create, и он отлично работает. я уже сопоставил все файлы конфигурации и совместимости на локальном компьютере и сервере. Мне кажется, все в порядке.

const elasticsearchDoc = {
      index: "school",
      type: "_doc",
      id: 12345,
      body: { name:"raj",marks:40 }
};
const result = await client.create(elasticsearchDoc);
...
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
10 942
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, проблема в том, что вы используете библиотеку старый JS-клиент вместо новый.

С 16.0.0 вам нужно чтобы явно установить параметр apiVersion для версии 6.x, потому что 7.0 используется по умолчанию, и, вероятно, поэтому вы видите эту ошибку (поскольку вы используете ES 6.3.0):

apiVersion: 6.7

Но как это работает на локальном хосте, потому что я использую одну и ту же версию node_module как на локальном, так и на сервере

Raghu Chahar 10.07.2019 08:24

Вы уверены, что у вас одинаковая версия ES на локальном компьютере и на сервере?

Val 10.07.2019 08:27

да, версия 6.3.0. Я также уверен, что это какая-то проблема с конфигурацией или совместимостью, но я не могу понять это.

Raghu Chahar 10.07.2019 08:30

да, я получил решение, это была проблема с версией модуля узла. то есть конфликт совместимости версий. Спасибо за ваш ответ, это действительно помогло.

Raghu Chahar 19.08.2019 10:24

Круто, рад, что ты разобрался, не стесняйся, если помогло ;-)

Val 19.08.2019 10:26

Другие вопросы по теме