【发布时间】:2015-02-01 16:10:19
【问题描述】:
默认情况下,NEST 在将对象发送到 Elasticsearch 进行索引时,会将对象和属性名称命名为驼峰式。如何在 Elasticsearch 文档的 NEST 中禁用驼峰式字段名称?我已经进行了大量的研究,并且有一个关于这个主题的mailing list thread,但它似乎已经过时,因为一些方法已被重命名或不再存在。
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() or ToLower()例如 -
@DJKRAZE:我根本不想修改名字。当我发送要索引的对象时,我希望对象的属性名称不受影响。注意:settings.SetDefaultTypeNameInferrer 仅影响对象类型(如果您在构建请求时不使用其他更具体的内容覆盖它,通常会推断为 Elasticsearch 文档类型)。那行代码与对象的属性名称无关。
标签: c# elasticsearch nest