2016-02-11 2 views
0

Мне нужно удалить хэш из массива хэшей в поиске эластичности. Я пробовал следующие запросы, но никто из них не работает. Пожалуйста помоги.Удалить запись из массива в упругом поиске

URL: POST https://127.0.0.1:9292/group/98902/_update

{ 
script : "for (int i = 0; i < ctx._source.users.size(); i++) 
{if(ctx._source.users[i].id == id){ctx._source.users.remove(i);}}", 
"params" : { 
    "id" : "9890" 
} 
} 

ИЛИ

{script: "ctx._source.users.remove(user)", 
"params" : { 
    "user": 
     { 
     id: "9890" 
    } 
}} 

Я получаю ниже ответ.

{ "ошибка": "ElasticsearchIllegalArgumentException [не удался выполнить сценарий]; вложенный: ScriptException [динамические сценарии для [заводного] отключено];", "статуса": 400 }

ответ

0

Так как ES 1.5, «Динамический скриптинг» (выполнение не песочницы-скрипта из запроса) по умолчанию отключен.

Это не Рекоммендуемый, но вы можете выбрать в этой конфигурации:

script.inline: true 
script.indexed: true 

См https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

+0

Благодарности Жереми. На самом деле, я узнал, у меня нет доступа к обновлению конфигурации. Итак, я должен получить документ и обновить его. –

Смежные вопросы