默认情况下,将对象发送到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