Как вставить или обновить документ в ElasticSearch NEST 6 - PullRequest
0 голосов
/ 23 сентября 2018

Как вставить или обновить документ в 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 к запросу!

...