Как вставить или обновить документ в ElasticSearch NEST 6
Я хочу сохранить событие просмотра веб-страницы для каждого пользователя в эластичном индексе.если ViewEvent для определенного пользователя существует, то Insert, иначе плюс 1 счет существующего ViewEvent.
Тип эластичного документа: Post
public class ViewEvent
{
public int UserId {get; set;}
public int Count {get; set;}
}
. Я могу сделать это, выполнив запрос REST:
http://192.168.20.80:9200/db/ViewEvent/2/_update
{
"script": {
"lang": "painless",
"source": "ctx._source.count += 1;"
},
"upsert" : {
"userId": 2,
"count": 1
}
}
Проблема в том, что я пытаюсь сделать это с помощью клиента NEST.Обновите деталь, выполнив следующий код.
var response1 = await _vastContext.Client(indexName)
.UpdateByQueryAsync<VastEvent>(u => u.Query(query =>
query.Terms(term => term.Field(f => f.UserId).Terms(2)))
.Script(script => script.Source($"ctx._source.count += 1;")
.Lang(ScriptLang.Painless)));
Я не могу добавить часть upsert к запросу!