При использовании Nest 5.0+ согласно документации несколько способов игнорировать поле:
Атрибут Ignore
должен работать:
using Nest;
[Ignore]
public string UnivId { get; set; }
JsonIgnore
также можно использовать, поскольку Newtonsoft.Json
является сериализатором по умолчанию, используемым Nest.
Другой способ — использовать тип сопоставление атрибутов, связанных с ресурсом. Например, поскольку это string
, используйте атрибут Text
:
[Text(Ignore = true)]
public string UnivId { get; set; }
или если int
использовать Number
:
[Number(Ignore = true)]
public int Id { get; set; }
Кроме того, вместо использования явного атрибута свойства сопоставление можно игнорировать, используя .DefaultMappingFor<...
для ConnectionSettings
(см. документы для более подробной информации)
var connectionSettings = new ConnectionSettings()
.DefaultMappingFor<Type1>(m => m.Ignore(p => p.UnivId);
Однако, если вы хотите условно игнорировать атрибут, если его значение равно null, используйте следующий Newtonsoft.Json
атрибут с нулевой настройкой обработки:
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string UnivId { get; set; }
Я нашел это полезным при выполнении частичных обновлений в документе, но хотел повторно использовать тот же класс C# для индексации и избежать перезаписи существующих значений в индексе.
person
Ray
schedule
06.06.2019