Справочная информация: Я пытаюсь добиться удаления нескольких значений из эластичного объекта с помощью одного вызова API.Наше приложение использует Node-Red для создания бэкэнд-API.
Я использую приведенную ниже команду curl для удаления нескольких идентификаторов документов, и она работает как шарм.Он удаляет документы, найденные с идентификаторами xxxxx
и yyyyy
.
POST /tom-access/doc/_delete_by_query
{
"query": {
"terms": {
"_id": [
"xxxxx",
"yyyyy"
]
}
}
}
Однако, когда я пытаюсь сделать то же самое через Node-Red (используя функцию JavaScript), я получаю ошибку ниже.
{"error": {"root_cause": [{"type": "action_request_validation_exception", "reason": "Ошибка проверки: 1: запрос отсутствует;"}], "type": "action_request_validation_exception", "reason": "Ошибка проверки: 1: запрос отсутствует;"}, "status": 400}
Вот что у меня внутри функции Node-Red JavaScript:
if (!msg.headers) msg.headers = {};
msg.req = {
"query": {
"terms": {
"id": [
"xxxxx",
"yyyyy"
]
}
}
};
msg.headers = {
"Content-Type": "application/json",
"Authorization" : "Basic xxxxxxxxxxxxxxxxxxxxx"
};
msg.method = "POST"
// New elastic
msg.url = "http://elastic.test.com/tom-access/doc/_delete_by_query";
return msg;
Следующий узел выполняет HTTP-вызов, используя объект msg
выше, но приводит к ошибке, упомянутой выше.Я новичок в Node-Red, JavaScript и Elastic, а также.HEEELP !!!