如何在NEST中禁用驼峰套管Elasticsearch字段名称?

 PHPdudu 发布于 2022-12-07 19:20

默认情况下,NEST会在将对象发送到Elasticsearch进行索引时使用驼峰大小写对象和属性名称.如何在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);

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

2 个回答
  • ConnectionSettings.SetDefaultPropertyNameInferrer()是你在找什么.此方法接受一个带有属性名称并对其应用转换的函数.然后,在将请求发送到Elasticsearch之前,会在每个属性上调用该函数.

    如果您想保持您的属性名称不变,那么您可以这样做:

    settings.SetDefaultPropertyNameInferrer(p => p)

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

    2022-12-11 02:13 回答
  • 在2.5.0版本中,它是:

    settings.DefaultFieldNameInferrer(p => p)
    

    2022-12-11 03:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有