c# – 如何禁用骆驼套装NEST中的弹性搜索字段名称?

认情况下,当将对象发送到Elasticsearch进行索引时,nesT会将case对象和属性名称加载.如何在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);

有没有人有任何更新的语法来处理这个?谢谢.

解决方法

ConnectionSettings.SetDefaultPropertyNameInferrer()是您要查找的内容.此方法接受一个获取属性名称并对其进行转换的函数.然后在将请求发送到Elasticsearch之前,对每个属性调用函数.

如果要保持属性名称不变,则可以这样做:

settings.SetDefaultPropertyNameInferrer(p => p)

p => p这里只是一个函数,它接受一个字符串(您的属性名称),并返回相同的字符串未修改.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么