Я пытаюсь обновить поля моего индекса с помощью CId; CId можно использовать во многих строках. Моя структура, например:
{
AId: 4244,
BId : 53535,
CId: "4242342"
}
Если вы посмотрите на приведенный ниже запрос о том, чего я намерен достичь, он вернет мне результат, который я желаю.
POST usereventsreduced-*/_update_by_query
{
"script": {
"source": "ctx._source.AId = 1;",
"lang": "painless"
},
"query": {
"match": {
"CId": "b60d505f-baf6-4522-b2a3-659509435c29"
}
}
}
Но я хочу использовать вышеуказанный запрос в C# с помощью Nest. если вы посмотрите на мой код ниже, вы поймете, что я имею в виду. Но это не сработало. Гнездо действительно сложно и не легко понять. как я могу выполнить этот запрос, написав Nest - C#?
foreach (var pageview in pageviews)
{
var updateResponse = client.Update<object>("CId:${pageview.CId}", u => u
.Index(indexName)
.Script(s => s.Source("ctx._source.AId = params.AId")
.Lang("painless")
.Params(d => d
.Add("AId", pageview.AId)
)
)
);
Console.WriteLine(updateResponse.Result.ToString());
}
ВЫ ДОЛЖНЫ БЫТЬ ОСТОРОЖНЫ!
создать класс нелегко. Пожалуйста, не делай этого. Поскольку мой индексный фид из очень динамичных c полей, MyClass может иметь 50 файловых полей 1, а затем 65 файлов. На самом деле я не хочу использовать создание класса (AId, BId, CId, DId ... et c.), Потому что мои поля являются динамическими. Спасибо за вашу помощь