c# – 如何禁用骆驼套装NEST中的弹性搜索字段名称?
发布时间:2020-12-15 03:54:19 所属栏目:百科 来源:网络整理
导读:默认情况下,当将对象发送到Elasticsearch进行索引时,NEST会将case对象和属性名称加载.如何在NEST中弹性搜索文件禁用骆驼套装字段名称?我做了大量的研究,并且有一个关于这个问题的 mailing list thread,但似乎已经过时了,因为一些方法已被重命名或不再存在.
默认情况下,当将对象发送到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这里只是一个函数,它接受一个字符串(您的属性名称),并返回相同的字符串未修改. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |