Domyślnie NEST będzie wielbić obiekt sprawy i nazwy właściwości podczas wysyłania obiektu do Elasticsearch w celu zindeksowania. W jaki sposób można wyłączać nazwy pól nazwy pola wielbłąda w dokumentach NEST dla Elasticsearch? Zrobiłem sporo badań i jest mailing list thread na ten temat, ale wydaje się nieaktualne, ponieważ niektóre metody zostały zmienione lub już nie istnieją. Jak wyłączyć obudowę wielbłąda Nazwy pól wyszukiwania elastycznego w NEST?
IConnectionPool connectionPool = new SniffingConnectionPool(m_ElasticsearchNodeUris);
ConnectionSettings settings = new ConnectionSettings(connectionPool);
settings.SetDefaultTypeNameInferrer(p => p.Name); //This disables camel casing for object type names
ElasticClient client = new ElasticClient(settings);
informacji na liście dyskusyjnej wskazuje ten kod powinien być dodany do obsługi rzeczy dla nazwy pól, ale sposób klient nie wydaje się istnieć:
client.ModifyJsonSerializationSettings(s => s.ContractResolver = new Nest.Resolvers.ElasticResolver(settings);
Czy ktoś ma wszelkie uaktualnione składnia do obsługi tego? Dzięki.
jak ty chce Opcja 'name' natknąć ..? 'UpperCase, LosweCase ..?' Proszę wyjaśnić .. jeśli nie możesz użyć '.ToUpper() lub ToLower()' na przykład – MethodMan
@DJKRAZE: Nie chcę w ogóle modyfikować nazwy. Kiedy wysyłam obiekt do zaindeksowania, chcę, aby nazwy właściwości obiektu były niezmienione. Uwaga: settings.SetDefaultTypeNameInferrer wpływa tylko na typ obiektu (który jest często interpretowany jako typ dokumentu Elasticsearch, jeśli nie zastąpisz go czymś bardziej szczegółowym podczas budowania zapytania). Ta linia kodu nie ma wpływu na nazwy właściwości obiektu. – Ellesedil