2017-02-14 3 views
0

Elasticsearch: 2.3.3elasticsearch _update_by_query не работает

Ниже приведены последовательность моих команд

индексного файла док

POST test-index/doc 
{ 
    "name":"sahas" 
} 

Получить док

GET test-index/_search 
{ 
    "query": { 
    "match": { 
     "name": "sahas" 
    } 
    } 
} 

Update документ

POST test-index/doc/_update_by_query?name=subramanian 
{ 
    "query": { 
    "match": { 
     "name": "sahas" 
    } 
    } 
} 

Результат обновления

{ 
    "took": 9, 
    "timed_out": false, 
    "total": 1, 
    "updated": 1, 
    "batches": 1, 
    "version_conflicts": 0, 
    "noops": 0, 
    "retries": 0, 
    "failures": [] 
} 

Но когда я запрашиваю документ еще раз, его не обновляется. Есть ли способ выяснить, почему обновление здесь не работает? Я пропустил что-то глупое?

Цените любые материалы ..

ответ

1

Ваше обновление по запросу не изменить источник. Для этого вам необходимо включить сценарий:

POST test-index/doc/_update_by_query 
{ 
    "query": { 
    "match": { 
     "name": "sahas" 
    } 
    }, 
    "script": { 
    "inline": "ctx._source.name = 'subramanian'" 
    } 
} 
Смежные вопросы