Per impostazione predefinita, NEST camelerà i nomi degli oggetti e delle proprietà del caso quando si invia un oggetto a Elasticsearch per l'indicizzazione. In che modo i nomi dei campi di carcasse di cammelli possono essere disattivati nei documenti NEST per Elasticsearch? Ho svolto una discreta attività di ricerca e sull'argomento c'è uno mailing list thread, ma sembra obsoleto in quanto alcuni dei metodi sono stati rinominati o non esistono più. Come disattivare i nomi dei campi Elasticsearch del rivestimento del cammello in 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);
Le informazioni contenute in mailing list indica questo codice dovrebbe essere aggiunto per gestire le cose per i nomi dei campi, ma il metodo cliente non sembra esistere:
client.ModifyJsonSerializationSettings(s => s.ContractResolver = new Nest.Resolvers.ElasticResolver(settings);
Qualcuno ha qualche aggiornamento sintassi per gestire questo? Grazie.
come stai volere il 'name' per incontrare ..? 'UpperCase, LosweCase ..?' Per favore chiarire .. se non si può usare '.ToUpper() o ToLower()' ad esempio – MethodMan
@DJKRAZE: Non voglio affatto modificare il nome. Quando invio un oggetto da indicizzare, voglio che i nomi delle proprietà dell'oggetto non vengano molestati. Nota: settings.SetDefaultTypeNameInferrer ha effetto solo sul tipo di oggetto (che viene spesso considerato come il tipo di documento Elasticsearch se non lo si sovrascrive con qualcos'altro più specifico quando si crea la richiesta). Quella riga di codice non ha alcuna relazione con i nomi delle proprietà dell'oggetto. – Ellesedil