asticsearch.js: updateByQuery, если существует, иначе вставить - PullRequest
0 голосов
/ 22 октября 2019

Используя SDKasticsearch.js (node.js), мы можем использовать client.index({ ... }) для вставки документа (вставьте, если не существует, обновите в противном случае).

Однако, если я хочу обновить только определенное поле, напримернапример:

client.updateByQuery({
  index: 'test',
  body: {
    query: { match: { _id: '1' } },
    script: { inline: 'ctx._source.hello = "world"' }
  }
})

Теперь я хочу создать документ с идентификатором 1, если он не существует с его полем hello, установленным на world, или если документ с id 1 существует, а затем обновить его поле hello на world. Это возможно? Как?

1 Ответ

0 голосов
/ 22 октября 2019

Вы, вероятно, ищете обновление API с документом в качестве обновления . Используйте как показано ниже:

POST test/_update/1
{
  "doc":{
    "hello": "world"
  },
  "doc_as_upsert": true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...