当前位置: 首页 > 面试题库 >

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

禄和宜
2023-03-14
问题内容

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

有人有更新的语法来处理吗?谢谢。


问题答案:

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

如果要保持属性名称不变,则可以执行以下操作:

settings.SetDefaultPropertyNameInferrer(p => p)

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



 类似资料:
  • 我正在尝试使用NEST c#客户端搜索我的弹性搜索嵌套对象。我的索引名称是”,我的”字段。 这是我的班级: 现在我的web应用程序看起来像这样: 这里是我需要搜索的单词。 我在浏览器的搜索框(网络表单)中输入它。 搜索关键字可能包含任何需要与我的表人员中的任何字段的值匹配。 如果搜索关键字与嵌套文档匹配,则应返回确切的嵌套文档。 我不知道我的嵌套查询有问题,或者我实际上不知道如何使用嵌套查询来执行

  • 如何使用spring data-elasticsearch实现这一点?

  • 问题内容: 我有这样的文件 我需要更改为 为此,首先将字段映射添加到现有索引 然后尝试重新索引 错误是 问题答案: 该字段在您的文档中尚不存在,因此您的脚本需要首先创建它: 或更短一些:

  • 在elasticsearch的索引中有两个字段field1和field2 我需要重命名字段1到字段2,我也想重命名字段2到字段1 这就是我当前映射的样子,我已经为此映射索引了许多文档 我需要下面的地图 是否有任何可能,我可以重命名字段和做重新索引? 我使用的是elasticsearch 7.4版

  • 问题内容: 我想使用Nest将完成建议字段填充到索引中。阅读了有关实现补全字段的ElasticSearch博客文章后,我看到您可以具有以下属性: 输入数组 单输出 重量 有效载荷 我假设要将这些数据加载到索引中,我需要在包含上述字段的搜索对象上包括一个实体吗? 问题答案: 我终于可以通过创建几个类并遵循FluentMappingFullExample单元测试(特别是以下部分)来加载完成字段: 对于

  • 问题内容: 如何使用Mpdreamz / NEST Elasticsearch客户端基于嵌套字段的属性列出构面? 我检查了Nest文档,但不清楚如何执行。 这是我尝试的代码: 由于构面,我得到: 体裁(842) 98(47) 51(30) 24(29) 46(28) 虽然我希望得到类似的东西: 类型1(842) 体裁2(47) 类型3(30) 类型4(29) 类型5(28) 我做错了什么?在哪里检