2016-07-19 4 views
0

Как можно частично обновить запись при использовании NEST2?Частичное обновление эластичного поиска NEST 2.x

Я ищу аналогового запроса: POST/монтаж/магазин/1/_update { "документ": { "новый": "0"}}

без воссоздания новый рекорд , к сожалению, я не нашел ничего об обновлениях в www.elastic.co/guide/en/elasticsearch/client/net-api/current/index.html

UPDATE:

var updateResponse = es.Current.Update<MyDocument, MyDocument> (DocumentPath<MyDocument>.Id(2), descriptor => descriptor 
    .Doc(new MyDocument 
    { 
     name = "new name" 
    })); 

я бегу этот код, но он полностью обновляет весь документ.

https://gyazo.com/2fdae851bb8bc445f6e8e58abb2f0e3b что я делаю неправильно?

+0

Вы найдете пример [здесь] (http://stackoverflow.com/questions/35630189/how-to-update-an-elasticsearch-document-in-nest2/35632211#35632211). – Rob

+0

thx для ответа, но я не понимаю, какое пространство имен имеет ** DocumentPartial ** и ** DocumentPath **. я пытаюсь использовать ваш код, но у меня ошибка. 'вар updateResponse = es.Current.Update <Документ, MyDocument> (дескриптор => дескриптора .id (1) .doc (новый MyDocument { имя = "QWERTY" }));' я попытался используйте этот код, но он обновляет весь документ и оставляет все поля пустыми, за исключением «name» – krabcore

+0

Можете ли вы опубликовать полный пример? – Rob

ответ

4

Использование анонимного объекта или другого класса со свойствами, которые вы хотите обновить. попробуйте этот код:

var updateResponse = es.Current.Update<MyDocument, object>(1, descriptor => descriptor 
      .Doc(new { name = "new name" })); 
+0

спасибо большое, Mohammad это именно то, что мне нужно было – krabcore

+0

пожалуйста отметьте ответ, если истинный ответ для другого пользователя –

+0

+1 для анонимного типа. Я бы, вероятно, использовал тот же корпус с именем свойства, что и обновляемый тип: сериализованный корпус в json будет соответствовать любым параметрам сериализатора. –

Смежные вопросы