Toplu dizin sorgusu için kullanılan JsonSerializer için Objects TypeHandling özelliğini etkinleştirmem gerekiyor. Ancak, NEST için Serializer ayarlarını değiştirdiğimde, toplu sorgu bir bütün olarak yanlış serileştiriliyor.NEST'te ham toplu indeks sorgusu gönderin veya YALNIZCA belgeyi belirli bir şekilde serileştirin
kullandığım seri hale:
public class SearchJsonNetSerializer : JsonNetSerializer
{
public SearchJsonNetSerializer(IConnectionSettingsValues settings)
: base(settings)
{
}
protected override void ModifyJsonSerializerSettings(JsonSerializerSettings settings)
{
settings.Formatting = Formatting.None;
settings.TypeNameHandling = TypeNameHandling.Objects;
}
}
aldığım çıkışı: ikinci hat doğrudur ancak yuva bir şekilde ilk satırı seri hale getirmek için seri hale ayarları kullanılmıştır
{"index":{"$type":"Nest.BulkIndexOperation`1[[TestProject.TestDTO, TestProject]], Nest","_type":"testdto","_id":"146949756709543936"}}
{"$type":"TestProject.TestDTO, TestProject","Id":146949756709543936,"Title":"test","TitleRaw":"test"}
bu isteği tamamen yok eder.
Değiştirilen serileştirmeyi yalnızca asıl nesneye uygulamak için bir yol var mı? Değilse, toplu bir sorgu için istek olarak ham, hazırlanmış bir json dizesi göndermek için bir yolu var mı? Ben Eski sürümde bu işlevselliği gördük ancak şimdiki bir arada - 2.0, ben sadece bunu yapmak için bir yol bulamıyorum ...
Aylak :(Ben, düşük seviyeli istemcisi kullanarak kaçınmak istedim benim NEST müşteri ile değiştirmek istedim önceki yaklaşım.Ama, düşük seviye istemci kullanımı kalır sanırım. – Slowacki
@Slowacki "tür" bilgi ihtiyacın belirli bir nedeni var mı? Belki de sorun farklı bir çözüm ile çözülebilir ? –
Birkaç DTO sınıfını kullanıyorum. Aynı arayüzü uygular. TypeNameHandling.Objects endekslemeye ayarlandığında, aramaya ElasticsearchResponse'deki isabetler doğru DTO sınıflarına geri eşlenir. – Slowacki