默認情況下,將對象發送到Elasticsearch以進行索引時,NEST將駝峯大小寫對象和屬性名稱。在NEST for Elasticsearch文檔中,如何禁用駱駝套管字段名稱?我已經做了相當多的研究,關於這個問題有一個mailing list thread,但它似乎過時了,因爲一些方法已被重命名或不再存在。 如何在NEST中禁用駱駝套管Elasticsearch字段名稱?
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);
在郵件列表的信息表示該代碼應該被添加到處理事情的字段名稱,但客戶端的方法似乎並不存在:
client.ModifyJsonSerializationSettings(s => s.ContractResolver = new Nest.Resolvers.ElasticResolver(settings);
沒有人有任何更新語法來處理這個?謝謝。
你是如何想的'Name'跨來..? 'UpperCase,LosweCase ..?'請澄清..如果你不能使用'.ToUpper()或ToLower()'例如 – MethodMan 2014-12-03 22:44:06
@DJKRAZE:我根本不想修改這個名字。當我發送一個要編制索引的對象時,我希望該對象的屬性名稱不受干擾。注意:settings.SetDefaultTypeNameInferrer僅影響對象類型(如果您在構建請求時沒有用其他更具體的內容覆蓋它,通常會推斷爲Elasticsearch文檔類型)。該行代碼與對象的屬性名稱無關。 – Ellesedil 2014-12-03 22:45:55